006.Kubernetes二进制部署ETCD
目录
一 部署ETCD集群
1.1 安装ETCD
1.2 分发ETCD
1.3 创建etcd证书和密钥
1.4 分发证书和私钥
1.5 创建etcd的systemd
1.6 修改systemd相应地址
1.7 分发etcd systemd
二 启动并验证
2.1 启动ETCD
2.2 检查ETCD启动
2.3 验证服务状态
2.4 查看ETCD当前leader
回到顶部
一 部署ETCD集群
1.1 安装ETCD
etcd 是基于 Raft 的分布式 key-value 存储系统,由 CoreOS 开发,常用于服务发现、共享配置以及并发控制(如 leader 选举、分布式锁等)。kubernetes 使用 etcd 存储所有运行数据。
复制代码
1 etcd 是基于 Raft 的分布式 key-value 存储系统,由 CoreOS 开发,常用于服务发现、共享配置以及并发控制(如 leader 选举、分布式锁等)。kubernetes 使用 etcd 存储所有运行数据。
2 [root@k8smaster01 ~]# cd /opt/k8s/work
3 [root@k8smaster01 work]# wget https://github.com/coreos/etcd/releases/download/v3.3.13/etcd-v3.3.13-linux-amd64.tar.gz
4 [root@k8smaster01 work]# tar -xvf etcd-v3.3.13-linux-amd64.tar.gz
复制代码
1.2 分发ETCD
复制代码
1 [root@k8smaster01 ~]# cd /opt/k8s/work
2 [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh
3 [root@k8smaster01 work]# for master_ip in ${MASTER_IPS[@]}
4 do
5 echo ">>> ${master_ip}"
6 scp etcd-v3.3.13-linux-amd64/etcd* root@${master_ip}:/opt/k8s/bin
7 ssh root@${master_ip} "chmod +x /opt/k8s/bin/*"
8 done
复制代码
1.3 创建etcd证书和密钥
复制代码
1 [root@k8smaster01 ~]# cd /opt/k8s/work
2 [root@k8smaster01 work]# cat > etcd-csr.json <>> ${master_ip}"
6 ssh root@${master_ip} "mkdir -p /etc/etcd/cert"
7 scp etcd*.pem root@${master_ip}:/etc/etcd/cert/
8 done
复制代码
1.5 创建etcd的systemd
复制代码
1 [root@k8smaster01 ~]# cd /opt/k8s/work
2 [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh
3 [root@k8smaster01 work]# cat > etcd.service.template < etcd-${MASTER_IPS[i]}.service
6 done
复制代码
1.7 分发etcd systemd
复制代码
1 [root@k8smaster01 ~]# cd /opt/k8s/work
2 [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh
3 [root@k8smaster01 work]# for master_ip in ${MASTER_IPS[@]}
4 do
5 echo ">>> ${master_ip}"
6 scp etcd-${master_ip}.service root@${master_ip}:/etc/systemd/system/etcd.service
7 done
复制代码
回到顶部
二 启动并验证
2.1 启动ETCD
复制代码
1 [root@k8smaster01 ~]# cd /opt/k8s/work
2 [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh
3 [root@k8smaster01 work]# for master_ip in ${MASTER_IPS[@]}
4 do
5 echo ">>> ${master_ip}"
6 ssh root@${master_ip} "mkdir -p ${ETCD_DATA_DIR} ${ETCD_WAL_DIR}"
7 ssh root@${master_ip} "systemctl daemon-reload && systemctl enable etcd && systemctl restart etcd " &
8 done
复制代码
2.2 检查ETCD启动
复制代码
1 [root@k8smaster01 ~]# cd /opt/k8s/work
2 [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh
3 [root@k8smaster01 work]# for master_ip in ${MASTER_IPS[@]}
4 do
5 echo ">>> ${master_ip}"
6 ssh root@${master_ip} "systemctl status etcd|grep Active"
7 done
复制代码
2.3 验证服务状态
复制代码
1 [root@k8smaster01 ~]# cd /opt/k8s/work
2 [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh
3 [root@k8smaster01 work]# for master_ip in ${MASTER_IPS[@]}
4 do
5 echo ">>> ${master_ip}"
6 ETCDCTL_API=3 /opt/k8s/bin/etcdctl \
7 --endpoints=https://${master_ip}:2379 \
8 --cacert=/etc/kubernetes/cert/ca.pem \
9 --cert=/etc/etcd/cert/etcd.pem \
10 --key=/etc/etcd/cert/etcd-key.pem endpoint health
11 done
复制代码
clipboard
2.4 查看ETCD当前leader
复制代码
1 [root@k8smaster01 ~]# source /opt/k8s/bin/environment.sh
2 [root@k8smaster01 ~]# ETCDCTL_API=3 /opt/k8s/bin/etcdctl \
3 -w table --cacert=/etc/kubernetes/cert/ca.pem \
4 --cert=/etc/etcd/cert/etcd.pem \
5 --key=/etc/etcd/cert/etcd-key.pem \
6 --endpoints=${ETCD_ENDPOINTS} endpoint status
复制代码
clipboard
如上所示,当前ETCD集群的leader为172.24.8.71。
作者:木二
出处:http://www.cnblogs.com/itzgr/
关于作者:云计算、虚拟化,Linux,多多交流!
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接!如有其他问题,可邮件(xhy@itzgr.com)咨询。
分类: Kuberneteshttps://www.cnblogs.com/itzgr/p/11865232.html