ITPub博客

首页 > 云计算 > Docker/K8 > 19 Docker容器集群网络架构:二、etcd集群离线部署

19 Docker容器集群网络架构:二、etcd集群离线部署

原创 Docker/K8 作者:shuchaoyang 时间:2024-11-18 08:56:46 0 删除 编辑

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集群成员

19 Docker容器集群网络架构:二、etcd集群离线部署

2.1 准备工作

以docker01节点为例,其它节点以此执行 。

2.1.1 上传etcd
[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] #
2.1.2 解压etcd
[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] #
2.1.3 拷贝文件到/usr/local/bin
[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] #
2.1.4 创建相关目录并赋权
[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] #

2.2 创建etcd集群

2.2.1 创建etcd配置文件
  • 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
2.2.2 配置etcd服务文件

以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] #
2.2.3 启动ectd服务

以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] #

2.3 查看etcd集群成员

2.3.1 查看etcd集群健康状态
  • 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] #
2.3.2 查看etcd集群成员
  • 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] #

原文链接: https://mp.weixin.qq.com/s?__biz=MzkxNzI1OTE3Mw==&mid=2247493134&idx=1&sn=9c6544a3ea2e828751c0907016bcdcba&chksm=c141f0c4f63679d23444ac858333daa3faf5fb23591a59628f3d3b4d553e8c59575561b6ccce&token=1641304794&lang=zh_CN#rd

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

image-20241022150502587



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

请登录后发表评论 登录
全部评论
专注于IT系统集成、运维、架构二十年的IT职场老兵,拥有CCNA、OCA、OCP、PGCA、PGCE认证证书,公众号:超哥的IT私房菜,知识星球:超哥的IT私房菜,目前是多家IT厂商的咨询顾问。

注册时间:2021-08-27

  • 博文量
    552
  • 访问量
    303453