docker-compose搭建etcd集群的實(shí)現(xiàn)(三節(jié)點(diǎn))
1. 環(huán)境說(shuō)明
節(jié)點(diǎn) | IP |
---|---|
etcd1 | 10.10.239.31 |
etcd2 | 10.10.239.32 |
etcd3 | 10.10.239.33 |
2. 部署
etcd1
ymal文件
version: "3.0" services: etcd1: image: bitnami/etcd:latest container_name: etcd1 restart: always ports: - "2379:2379" - "2380:2380" environment: - ALLOW_NONE_AUTHENTICATION=yes #示例中我們不設(shè)置密碼 - ETCD_NAME=etcd1 #節(jié)點(diǎn)自己的名字 - ETCD_ADVERTISE_CLIENT_URLS=http://10.10.239.31:2379 #告知集群自己的客戶端地址 - ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379 #設(shè)置監(jiān)聽(tīng)客戶端通訊的URL列表 - ETCD_INITIAL_ADVERTISE_PEER_URLS=http://10.10.239.31:2380 #告知集群自己集群通訊地址 - ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380 #用于監(jiān)聽(tīng)伙伴通訊的URL列表 - ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster #etcd 集群的初始化集群記號(hào) - ETCD_INITIAL_CLUSTER=etcd1=http://10.10.239.31:2380,etcd2=http://10.10.239.32:2380,etcd3=http://10.10.239.33:2380 #集群成員 - ETCD_INITIAL_CLUSTER_STATE=new #初始化集群狀態(tài) volumes: - ./data:/bitnami/etcd
持久化
如果此時(shí)啟動(dòng),會(huì)在當(dāng)前目錄下創(chuàng)建 ./data 目錄,掛載到容器的 /bitnami/etcd ,但我們要注意的是,容器中啟動(dòng)etcd的用戶并不是root用戶,很可能沒(méi)有在目錄下創(chuàng)建文件的權(quán)限。我們有兩個(gè)方案:
【方法一】給777權(quán)限(不建議)
【方法二】所屬主改成對(duì)應(yīng)宿主機(jī)用戶(建議)
方法二操作:
- 先給./data目錄777權(quán)限
- 查看新生成的文件屬主是宿主機(jī)哪個(gè)用戶,就將./data目錄屬主改為哪個(gè)用戶
- 再將權(quán)限改回755或750,重啟容器
啟動(dòng)服務(wù)
[root@liubei-01 etcd1]# docker-compose up -d
查看結(jié)果
[root@liubei-01 etcd1]# docker-compose ps Name Command State Ports ----------------------------------------------------------------------------------------------- etcd1 /opt/bitnami/scripts/etcd/ ... Up 0.0.0.0:2379->2379/tcp, 0.0.0.0:2380->2380/tcp
etcd2
ymal文件
version: "3.0" services: etcd1: image: bitnami/etcd:latest container_name: etcd2 restart: always ports: - "2379:2379" - "2380:2380" environment: - ALLOW_NONE_AUTHENTICATION=yes - ETCD_NAME=etcd2 - ETCD_ADVERTISE_CLIENT_URLS=http://10.10.239.32:2379 - ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379 - ETCD_INITIAL_ADVERTISE_PEER_URLS=http://10.10.239.32:2380 - ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380 - ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster - ETCD_INITIAL_CLUSTER=etcd1=http://10.10.239.31:2380,etcd2=http://10.10.239.32:2380,etcd3=http://10.10.239.33:2380 - ETCD_INITIAL_CLUSTER_STATE=new volumes: - ./data:/bitnami/etcd
持久化(同上)
啟動(dòng)服務(wù)(同上)
etcd3
ymal文件
version: "3.0" services: etcd1: image: bitnami/etcd:latest container_name: etcd3 restart: always ports: - "2379:2379" - "2380:2380" environment: - ALLOW_NONE_AUTHENTICATION=yes - ETCD_NAME=etcd3 - ETCD_ADVERTISE_CLIENT_URLS=http://10.10.239.33:2379 - ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379 - ETCD_INITIAL_ADVERTISE_PEER_URLS=http://10.10.239.33:2380 - ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380 - ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster - ETCD_INITIAL_CLUSTER=etcd1=http://10.10.239.31:2380,etcd2=http://10.10.239.32:2380,etcd3=http://10.10.239.33:2380 - ETCD_INITIAL_CLUSTER_STATE=new volumes: - ./data:/bitnami/etcd
持久化(同上)
啟動(dòng)服務(wù)(同上)
3. 驗(yàn)證
3.1 查看集群狀態(tài)
查看集群成員
I have no name!@555187fb758c:/opt/bitnami/etcd$ etcdctl --write-out=table member list +------------------+---------+-------+--------------------------+--------------------------+------------+ | ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS | IS LEARNER | +------------------+---------+-------+--------------------------+--------------------------+------------+ | 57d6f74aaa8d5d3e | started | etcd1 | http://10.10.239.31:2380 | http://10.10.239.31:2379 | false | | 9107e491ab549324 | started | etcd3 | http://10.10.239.33:2380 | http://10.10.239.33:2379 | false | | e7b147006e212ca5 | started | etcd2 | http://10.10.239.32:2380 | http://10.10.239.32:2379 | false | +------------------+---------+-------+--------------------------+--------------------------+------------+
查看本節(jié)點(diǎn)狀態(tài)
I have no name!@555187fb758c:/opt/bitnami/etcd$ etcdctl --write-out=table endpoint status +----------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+ | ENDPOINT | ID | VERSION | DB SIZE | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX | ERRORS | +----------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+ | 127.0.0.1:2379 | 57d6f74aaa8d5d3e | 3.5.4 | 20 kB | true | false | 2 | 10 | 10 | | +----------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
查看本節(jié)點(diǎn)健康狀態(tài)
I have no name!@555187fb758c:/opt/bitnami/etcd$ etcdctl --write-out=table endpoint health +----------------+--------+------------+-------+ | ENDPOINT | HEALTH | TOOK | ERROR | +----------------+--------+------------+-------+ | 127.0.0.1:2379 | true | 3.736825ms | | +----------------+--------+------------+-------+
3.2 讀寫(xiě)測(cè)試
登錄其中一個(gè)節(jié)點(diǎn),進(jìn)入容器,寫(xiě)一條數(shù)據(jù)
zai
[root@liubei-01 etcd3]# docker exec -it 788 bash I have no name!@788dd01aaa79:/opt/bitnami/etcd$ etcd etcd etcdctl I have no name!@788dd01aaa79:/opt/bitnami/etcd$ etcdctl put name "liubei" OK
登錄另一個(gè)節(jié)點(diǎn),進(jìn)入容器,讀取數(shù)據(jù)
[root@liubei-02 ~]# docker exec -it 555 bash I have no name!@555187fb758c:/opt/bitnami/etcd$ etcdctl get name name liubei
到此這篇關(guān)于docker-compose搭建etcd集群的實(shí)現(xiàn)(三節(jié)點(diǎn))的文章就介紹到這了,更多相關(guān)docker-compose搭建etcd集群內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
手把手教你實(shí)現(xiàn)給Docker開(kāi)啟IPv6網(wǎng)絡(luò)支持
這篇文章主要為大家介紹了Docker開(kāi)啟IPv6網(wǎng)絡(luò)支持實(shí)現(xiàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08淺談Docker consul的容器服務(wù)更新與發(fā)現(xiàn)
本文主要介紹了淺談Docker consul的容器服務(wù)更新與發(fā)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06使用docker?部署mysql突然連接不上的問(wèn)題及解決方法
這篇文章主要介紹了使用docker?部署mysql,突然連接不上,要解決這個(gè)問(wèn)題需要找到根本原因,對(duì)癥治療就好,本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06idea集合docker實(shí)現(xiàn)鏡像打包一鍵部署
這篇文章主要介紹了idea集合docker實(shí)現(xiàn)鏡像打包一鍵部署2021-02-02Docker Registry搭建私有鏡像倉(cāng)庫(kù)的實(shí)現(xiàn)方法
這篇文章主要介紹了Docker Registry搭建私有鏡像倉(cāng)庫(kù)的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10docker啟動(dòng)時(shí)環(huán)境變量不生效的解決方法
因項(xiàng)目需要多處部署,所以打包成docker鏡像以便于部署,本文主要介紹了docker啟動(dòng)時(shí)環(huán)境變量不生效的解決方法,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03cgroup?blkio子系統(tǒng)對(duì)容器的讀寫(xiě)限速詳解
這篇文章主要為大家介紹了cgroup?blkio子系統(tǒng)對(duì)容器的讀寫(xiě)限速詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08Docker部署springboot項(xiàng)目實(shí)例解析
這篇文章主要介紹了docker部署springboot項(xiàng)目實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10docker-compose build使用參數(shù)args方式
這篇文章主要介紹了docker-compose build使用參數(shù)args方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01