【kubernetes 系列3】集群扩容和缩容(Node节点的移除与加入)

    xiaoxiao2022-07-02  138

    【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-token

    2.3 创建token 每个token只有24小时的有效期,如果没有有效的token,可以使用如下命令创建

    [root@server1 ~]# kubeadm token create difb39.v00p1ms46pjiyop0

    2.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/^.* //' 4481f81e7db781a698c6b3491cf8f07a492eb5552f46eb81a4e29ab60f1321d9

    2.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 cordoned

    3.2 删除node节点

    [root@server1 ~]# kubectl delete node server3.ukr node "server3.ukr" deleted

    3.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.1

    server3.ukr 节点已经被删除了。你也可以使用 kubectl get pods 查看server3.ukr上的所有pod已经重新转移到集群的其他node上了

    最新回复(0)