19 Docker容器集群网络架构:二、etcd集群离线部署 2.1 准备工作 2.1.1 上传etcd 2.1.2 解压etcd 2.1.3 拷贝文件到/usr/local/bin 2.1.4 创建相关目录并赋权 2.2 创建etcd集群 2.2.1 创建etcd配置文件 2.2.2 配置etcd服务文件 2.2.3 启动ectd服务 2.3 查看etcd集群成员 2.3.1 查看etcd集群健康状态 2.3.2 查看etcd集群成员
以docker01节点为例,其它节点以此执行 。
[root@docker01 ~] # cd /opt
[root@docker01 opt] # ls
containerd docker-19.03.15-stable docker-19.03.15-stable.tar.gz etcd-v3.0.12-linux-amd64.tar.gz rh
[root@docker01 opt] #
[root@docker01 opt] # tar xzf etcd-v3.0.12-linux-amd64.tar.gz
[root@docker01 opt] #
[root@docker01 opt] # ls
containerd docker-19.03.15-stable.tar.gz etcd-v3.0.12-linux-amd64.tar.gz
docker-19.03.15-stable etcd-v3.0.12-linux-amd64 rh
[root@docker01 opt] #
[root@docker01 opt] # cd etcd-v3.0.12-linux-amd64
[root@docker01 etcd-v3.0.12-linux-amd64] #
[root@docker01 etcd-v3.0.12-linux-amd64] # cp etcd etcdctl /usr/local/bin/
[root@docker01 etcd-v3.0.12-linux-amd64] #
[root@docker01 etcd-v3.0.12-linux-amd64] # mkdir -p /opt/etcd/data
[root@docker01 etcd-v3.0.12-linux-amd64] #
[root@docker01 etcd-v3.0.12-linux-amd64] # chmod 755 /opt/etcd
[root@docker01 etcd-v3.0.12-linux-amd64] #
[root@docker01 etcd-v3.0.12-linux-amd64] # mkdir /etc/etcd
[root@docker01 etcd-v3.0.12-linux-amd64] #
[root@docker01 etcd-v3.0.12-linux-amd64] # mkdir -p /opt/etcd/data
[root@docker01 etcd-v3.0.12-linux-amd64] #
[root@docker01 etcd-v3.0.12-linux-amd64] # chmod 755 /opt/etcd
[root@docker01 etcd-v3.0.12-linux-amd64] #
[root@docker01 etcd-v3.0.12-linux-amd64] # mkdir /etc/etcd
[root@docker01 etcd-v3.0.12-linux-amd64] #
docker01:
[root@docker01 etcd-v3.0.12-linux-amd64] # echo '#[Member]
ETCD_NAME = "docker01"
ETCD_DATA_DIR = "/opt/etcd/data"
ETCD_LISTEN_PEER_URLS = "http://0.0.0.0:2380"
ETCD_LISTEN_CLIENT_URLS = "http://0.0.0.0:2379,http://0.0.0.0:4001"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS = "http://192.168.0.121:2380"
ETCD_ADVERTISE_CLIENT_URLS = "http://192.168.0.121:2379,http://192.168.0.121:4001"
ETCD_INITIAL_CLUSTER = "docker01=http://192.168.0.121:2380,docker02=http://192.168.0.122:2380,docker03=http://192.168.0.123:2380"
ETCD_INITIAL_CLUSTER_TOKEN = "etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE = "new"' > /etc/etcd/etcd.conf
docker02:
[root@docker01 etcd-v3.0.12-linux-amd64] # echo '#[Member]
ETCD_NAME = "docker02"
ETCD_DATA_DIR = "/opt/etcd/data"
ETCD_LISTEN_PEER_URLS = "http://0.0.0.0:2380"
ETCD_LISTEN_CLIENT_URLS = "http://0.0.0.0:2379,http://0.0.0.0:4001"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS = "http://192.168.0.122:2380"
ETCD_ADVERTISE_CLIENT_URLS = "http://192.168.0.122:2379,http://192.168.0.122:4001"
ETCD_INITIAL_CLUSTER = "docker01=http://192.168.0.121:2380,docker02=http://192.168.0.122:2380,docker03=http://192.168.0.123:2380"
ETCD_INITIAL_CLUSTER_TOKEN = "etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE = "new"' > /etc/etcd/etcd.conf
docker03:
[root@docker01 etcd-v3.0.12-linux-amd64] # echo '#[Member]
ETCD_NAME = "docker03"
ETCD_DATA_DIR = "/opt/etcd/data"
ETCD_LISTEN_PEER_URLS = "http://0.0.0.0:2380"
ETCD_LISTEN_CLIENT_URLS = "http://0.0.0.0:2379,http://0.0.0.0:4001"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS = "http://192.168.0.123:2380"
ETCD_ADVERTISE_CLIENT_URLS = "http://192.168.0.123:2379,http://192.168.0.123:4001"
ETCD_INITIAL_CLUSTER = "docker01=http://192.168.0.121:2380,docker02=http://192.168.0.122:2380,docker03=http://192.168.0.123:2380"
ETCD_INITIAL_CLUSTER_TOKEN = "etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE = "new"' > /etc/etcd/etcd.conf
以docker01节点为例,其它节点以此执行 。
[root@docker01 etcd-v3.0.12-linux-amd64] # echo '[Unit]
Description =Etcd Server
After =network.target
After =network-online.target
Wants =network-online.target
[Service]
User =root
Type =notify
EnvironmentFile = -/etc/etcd/etcd.conf
ExecStart =/usr/local/bin/etcd
Restart =on-failure
RestartSec =10s
LimitNOFILE = 40000
[Install]
WantedBy =multi-user.target ' > /etc/systemd/system/etcd.service
[root@docker01 etcd-v3.0.12-linux-amd64] #
以docker01节点为例,其它节点以此执行 。
使etcd.service文件修改生效
[root@docker01 etcd-v3.0.12-linux-amd64] # systemctl daemon-reload
[root@docker01 etcd-v3.0.12-linux-amd64] #
设置etcd.service随系统自动启动
[root@docker01 etcd-v3.0.12-linux-amd64] # systemctl enable etcd
[root@docker01 etcd-v3.0.12-linux-amd64] #
启动etcd服务
[root@docker01 etcd-v3.0.12-linux-amd64] # systemctl start etcd
[root@docker01 etcd-v3.0.12-linux-amd64] #
查看服务状态
[root@docker01 etcd-v3.0.12-linux-amd64] # systemctl status etcd
● etcd.service - Etcd Server
Loaded: loaded (/etc/systemd/system/etcd.service; disabled; vendor preset: disabled)
Active: active (running) since 四 2024 -10-03 16:30:03 CST; 6s ago
Main PID: 25120 (etcd)
Tasks: 7
Memory: 11.4M
CGroup: /system.slice/etcd.service
└─25120 /usr/local/bin/etcd
10月 03 16:30:03 docker01 etcd[25120]: published {Name:docker01 ClientURLs:[http://127.0.0.1:2379 http://192.168....7a03a5
10月 03 16:30:03 docker01 etcd[25120]: ready to serve client requests
10月 03 16:30:03 docker01 etcd[25120]: serving insecure client requests on 127.0.0.1:2379, this is strongly discouraged!
10月 03 16:30:03 docker01 etcd[25120]: ready to serve client requests
10月 03 16:30:03 docker01 etcd[25120]: serving insecure client requests on 192.168.0.121:2379, this is strongly d...raged!
10月 03 16:30:03 docker01 systemd[1]: Started Etcd Server.
10月 03 16:30:03 docker01 etcd[25120]: established a TCP streaming connection with peer 1b48f6b7ad694df1 (stream ...riter)
10月 03 16:30:03 docker01 etcd[25120]: established a TCP streaming connection with peer 1b48f6b7ad694df1 (stream ...riter)
10月 03 16:30:03 docker01 etcd[25120]: established a TCP streaming connection with peer 9110cc6981d65e50 (stream ...riter)
10月 03 16:30:03 docker01 etcd[25120]: established a TCP streaming connection with peer 9110cc6981d65e50 (stream ...riter)
Hint: Some lines were ellipsized, use -l to show in full.
[root@docker01 etcd-v3.0.12-linux-amd64] #
docker01:
[root@docker01 etcd-v3.0.12-linux-amd64] # etcdctl cluster-health
member 1b48f6b7ad694df1 is healthy: got healthy result from http://192.168.0.123:2379
member 87ef0a454df755ba is healthy: got healthy result from http://192.168.0.121:2379
member 9110cc6981d65e50 is healthy: got healthy result from http://192.168.0.122:2379
cluster is healthy
[root@docker01 etcd-v3.0.12-linux-amd64] #
docker02:
[root@docker02 etcd-v3.0.12-linux-amd64] # etcdctl cluster-health
member 1b48f6b7ad694df1 is healthy: got healthy result from http://192.168.0.123:2379
member 87ef0a454df755ba is healthy: got healthy result from http://192.168.0.121:2379
member 9110cc6981d65e50 is healthy: got healthy result from http://192.168.0.122:2379
cluster is healthy
[root@docker02 etcd-v3.0.12-linux-amd64] #
docker03:
[root@docker03 etcd-v3.0.12-linux-amd64] # etcdctl cluster-health
member 1b48f6b7ad694df1 is healthy: got healthy result from http://192.168.0.123:2379
member 87ef0a454df755ba is healthy: got healthy result from http://192.168.0.121:2379
member 9110cc6981d65e50 is healthy: got healthy result from http://192.168.0.122:2379
cluster is healthy
[root@docker03 etcd-v3.0.12-linux-amd64] #
docker01:
[root@docker01 etcd-v3.0.12-linux-amd64] # etcdctl member list
1b48f6b7ad694df1: name =docker03 peerURLs =http://192.168.0.123:2380 clientURLs =http://127.0.0.1:2379,http://192.168.0.123:2379 isLeader = false
87ef0a454df755ba: name =docker01 peerURLs =http://192.168.0.121:2380 clientURLs =http://127.0.0.1:2379,http://192.168.0.121:2379 isLeader = false
9110cc6981d65e50: name =docker02 peerURLs =http://192.168.0.122:2380 clientURLs =http://127.0.0.1:2379,http://192.168.0.122:2379 isLeader = true
[root@docker01 etcd-v3.0.12-linux-amd64] #
docker02:
[root@docker02 etcd-v3.0.12-linux-amd64] # etcdctl member list
1b48f6b7ad694df1: name =docker03 peerURLs =http://192.168.0.123:2380 clientURLs =http://127.0.0.1:2379,http://192.168.0.123:2379 isLeader = false
87ef0a454df755ba: name =docker01 peerURLs =http://192.168.0.121:2380 clientURLs =http://127.0.0.1:2379,http://192.168.0.121:2379 isLeader = false
9110cc6981d65e50: name =docker02 peerURLs =http://192.168.0.122:2380 clientURLs =http://127.0.0.1:2379,http://192.168.0.122:2379 isLeader = true
[root@docker02 etcd-v3.0.12-linux-amd64] #
docker03:
[root@docker03 etcd-v3.0.12-linux-amd64] # etcdctl member list
1b48f6b7ad694df1: name =docker03 peerURLs =http://192.168.0.123:2380 clientURLs =http://127.0.0.1:2379,http://192.168.0.123:2379 isLeader = false
87ef0a454df755ba: name =docker01 peerURLs =http://192.168.0.121:2380 clientURLs =http://127.0.0.1:2379,http://192.168.0.121:2379 isLeader = false
9110cc6981d65e50: name =docker02 peerURLs =http://192.168.0.122:2380 clientURLs =http://127.0.0.1:2379,http://192.168.0.122:2379 isLeader = true
[root@docker03 etcd-v3.0.12-linux-amd64] #
👍 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/291614/viewspace-3050317/ ,如需转载,请注明出处,否则将追究法律责任。