【kubernetes 系列3】集群扩容和缩容(Node节点的移除与加入)
OS version:CentOS Linux release 7.6.1810 (Core) Docker version:19.03.0-beta3 server list: 10.18.18.16 server1.ukr 用来安装kubernetes master 10.18.18.7 server2.ukr 用作kubernetes minion (minion1) 10.18.19.8 server3.ukr 10.18.18.3 server4.ukr 用作kubbernetes minion (minion2)
2.1 join命令的解释
kubeadm join <master-ip>:<master-port> --token <token> --discovery-token-ca-cert-hash sha256:<hash><master-ip>:<master-port>: kube-apiserver的访问地址和端口 <token>: 加入集群缩需要的令牌 <hash>: 一个是Kubernetes认证的SHA256加密字符串
2.2 查看token
[root@server1 ~]# kubeadm token list TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS difb39.v00p1ms46pjiyop0 23h 2019-05-23T10:42:34+08:00 authentication,signing <none> system:bootstrappers:kubeadm:default-node-token2.3 创建token 每个token只有24小时的有效期,如果没有有效的token,可以使用如下命令创建
[root@server1 ~]# kubeadm token create difb39.v00p1ms46pjiyop02.4 查看SHA256加密字符串
[root@server1 ~]# openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //' 4481f81e7db781a698c6b3491cf8f07a492eb5552f46eb81a4e29ab60f1321d92.5 查看节点
[root@server1 ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION server1.ukr Ready master 14d v1.14.1 server2.ukr Ready <none> 14d v1.14.1 server3.ukr Ready <none> 14d v1.14.1 server4.ukr Ready <none> 14d v1.14.1新节点加入以后,kubernetes就可以给新的节点分配工作pod了。
kubernetes 在移除节点前,首先需要转移将被移除节点上的所有的pod,然后再删除node
3.1 转移节点(排干node上的所有pod)
[root@server1 ~]# kubectl drain server3.ukr --delete-local-data --force --ignore-daemonsets node/server3.ukr cordoned3.2 删除node节点
[root@server1 ~]# kubectl delete node server3.ukr node "server3.ukr" deleted3.3 查看节点
[root@server1 ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION server1.ukr Ready master 14d v1.14.1 server2.ukr Ready <none> 14d v1.14.1 server4.ukr Ready <none> 14d v1.14.1server3.ukr 节点已经被删除了。你也可以使用 kubectl get pods 查看server3.ukr上的所有pod已经重新转移到集群的其他node上了