k8s集群master和node添加

### 文章目录

  • [@[toc]](#文章目录 @[toc] 一、重新添加master 1)驱逐VIP 2)设置为不可调度 3)驱逐master 4)删除master3 5)清理etcd集群 6)卸载master节点 7)配置域名解析 8)master2生成join命令 二、node节点添加到集群 1)禁止调度 2)允许调度 3)驱逐节点 4)卸载node节点 5)配置域名解析 6)master2生成join命令 7)加入集群 8)删除驱逐恢复可调度 9)测试部署)
  • [一、重新添加master](#文章目录 @[toc] 一、重新添加master 1)驱逐VIP 2)设置为不可调度 3)驱逐master 4)删除master3 5)清理etcd集群 6)卸载master节点 7)配置域名解析 8)master2生成join命令 二、node节点添加到集群 1)禁止调度 2)允许调度 3)驱逐节点 4)卸载node节点 5)配置域名解析 6)master2生成join命令 7)加入集群 8)删除驱逐恢复可调度 9)测试部署)
  • [1)驱逐VIP](#文章目录 @[toc] 一、重新添加master 1)驱逐VIP 2)设置为不可调度 3)驱逐master 4)删除master3 5)清理etcd集群 6)卸载master节点 7)配置域名解析 8)master2生成join命令 二、node节点添加到集群 1)禁止调度 2)允许调度 3)驱逐节点 4)卸载node节点 5)配置域名解析 6)master2生成join命令 7)加入集群 8)删除驱逐恢复可调度 9)测试部署)
  • [2)设置为不可调度](#文章目录 @[toc] 一、重新添加master 1)驱逐VIP 2)设置为不可调度 3)驱逐master 4)删除master3 5)清理etcd集群 6)卸载master节点 7)配置域名解析 8)master2生成join命令 二、node节点添加到集群 1)禁止调度 2)允许调度 3)驱逐节点 4)卸载node节点 5)配置域名解析 6)master2生成join命令 7)加入集群 8)删除驱逐恢复可调度 9)测试部署)
  • [3)驱逐master](#文章目录 @[toc] 一、重新添加master 1)驱逐VIP 2)设置为不可调度 3)驱逐master 4)删除master3 5)清理etcd集群 6)卸载master节点 7)配置域名解析 8)master2生成join命令 二、node节点添加到集群 1)禁止调度 2)允许调度 3)驱逐节点 4)卸载node节点 5)配置域名解析 6)master2生成join命令 7)加入集群 8)删除驱逐恢复可调度 9)测试部署)
  • [4)删除master3](#文章目录 @[toc] 一、重新添加master 1)驱逐VIP 2)设置为不可调度 3)驱逐master 4)删除master3 5)清理etcd集群 6)卸载master节点 7)配置域名解析 8)master2生成join命令 二、node节点添加到集群 1)禁止调度 2)允许调度 3)驱逐节点 4)卸载node节点 5)配置域名解析 6)master2生成join命令 7)加入集群 8)删除驱逐恢复可调度 9)测试部署)
  • [5)清理etcd集群](#文章目录 @[toc] 一、重新添加master 1)驱逐VIP 2)设置为不可调度 3)驱逐master 4)删除master3 5)清理etcd集群 6)卸载master节点 7)配置域名解析 8)master2生成join命令 二、node节点添加到集群 1)禁止调度 2)允许调度 3)驱逐节点 4)卸载node节点 5)配置域名解析 6)master2生成join命令 7)加入集群 8)删除驱逐恢复可调度 9)测试部署)
  • [6)卸载master节点](#文章目录 @[toc] 一、重新添加master 1)驱逐VIP 2)设置为不可调度 3)驱逐master 4)删除master3 5)清理etcd集群 6)卸载master节点 7)配置域名解析 8)master2生成join命令 二、node节点添加到集群 1)禁止调度 2)允许调度 3)驱逐节点 4)卸载node节点 5)配置域名解析 6)master2生成join命令 7)加入集群 8)删除驱逐恢复可调度 9)测试部署)
  • [7)配置域名解析](#文章目录 @[toc] 一、重新添加master 1)驱逐VIP 2)设置为不可调度 3)驱逐master 4)删除master3 5)清理etcd集群 6)卸载master节点 7)配置域名解析 8)master2生成join命令 二、node节点添加到集群 1)禁止调度 2)允许调度 3)驱逐节点 4)卸载node节点 5)配置域名解析 6)master2生成join命令 7)加入集群 8)删除驱逐恢复可调度 9)测试部署)
  • [8)master2生成join命令](#文章目录 @[toc] 一、重新添加master 1)驱逐VIP 2)设置为不可调度 3)驱逐master 4)删除master3 5)清理etcd集群 6)卸载master节点 7)配置域名解析 8)master2生成join命令 二、node节点添加到集群 1)禁止调度 2)允许调度 3)驱逐节点 4)卸载node节点 5)配置域名解析 6)master2生成join命令 7)加入集群 8)删除驱逐恢复可调度 9)测试部署)
  • [二、node节点添加到集群](#文章目录 @[toc] 一、重新添加master 1)驱逐VIP 2)设置为不可调度 3)驱逐master 4)删除master3 5)清理etcd集群 6)卸载master节点 7)配置域名解析 8)master2生成join命令 二、node节点添加到集群 1)禁止调度 2)允许调度 3)驱逐节点 4)卸载node节点 5)配置域名解析 6)master2生成join命令 7)加入集群 8)删除驱逐恢复可调度 9)测试部署)
  • [1)禁止调度](#文章目录 @[toc] 一、重新添加master 1)驱逐VIP 2)设置为不可调度 3)驱逐master 4)删除master3 5)清理etcd集群 6)卸载master节点 7)配置域名解析 8)master2生成join命令 二、node节点添加到集群 1)禁止调度 2)允许调度 3)驱逐节点 4)卸载node节点 5)配置域名解析 6)master2生成join命令 7)加入集群 8)删除驱逐恢复可调度 9)测试部署)
  • [2)允许调度](#文章目录 @[toc] 一、重新添加master 1)驱逐VIP 2)设置为不可调度 3)驱逐master 4)删除master3 5)清理etcd集群 6)卸载master节点 7)配置域名解析 8)master2生成join命令 二、node节点添加到集群 1)禁止调度 2)允许调度 3)驱逐节点 4)卸载node节点 5)配置域名解析 6)master2生成join命令 7)加入集群 8)删除驱逐恢复可调度 9)测试部署)
  • [3)驱逐节点](#文章目录 @[toc] 一、重新添加master 1)驱逐VIP 2)设置为不可调度 3)驱逐master 4)删除master3 5)清理etcd集群 6)卸载master节点 7)配置域名解析 8)master2生成join命令 二、node节点添加到集群 1)禁止调度 2)允许调度 3)驱逐节点 4)卸载node节点 5)配置域名解析 6)master2生成join命令 7)加入集群 8)删除驱逐恢复可调度 9)测试部署)
  • [4)卸载node节点](#文章目录 @[toc] 一、重新添加master 1)驱逐VIP 2)设置为不可调度 3)驱逐master 4)删除master3 5)清理etcd集群 6)卸载master节点 7)配置域名解析 8)master2生成join命令 二、node节点添加到集群 1)禁止调度 2)允许调度 3)驱逐节点 4)卸载node节点 5)配置域名解析 6)master2生成join命令 7)加入集群 8)删除驱逐恢复可调度 9)测试部署)
  • [5)配置域名解析](#文章目录 @[toc] 一、重新添加master 1)驱逐VIP 2)设置为不可调度 3)驱逐master 4)删除master3 5)清理etcd集群 6)卸载master节点 7)配置域名解析 8)master2生成join命令 二、node节点添加到集群 1)禁止调度 2)允许调度 3)驱逐节点 4)卸载node节点 5)配置域名解析 6)master2生成join命令 7)加入集群 8)删除驱逐恢复可调度 9)测试部署)
  • [6)master2生成join命令](#文章目录 @[toc] 一、重新添加master 1)驱逐VIP 2)设置为不可调度 3)驱逐master 4)删除master3 5)清理etcd集群 6)卸载master节点 7)配置域名解析 8)master2生成join命令 二、node节点添加到集群 1)禁止调度 2)允许调度 3)驱逐节点 4)卸载node节点 5)配置域名解析 6)master2生成join命令 7)加入集群 8)删除驱逐恢复可调度 9)测试部署)
  • [7)加入集群](#文章目录 @[toc] 一、重新添加master 1)驱逐VIP 2)设置为不可调度 3)驱逐master 4)删除master3 5)清理etcd集群 6)卸载master节点 7)配置域名解析 8)master2生成join命令 二、node节点添加到集群 1)禁止调度 2)允许调度 3)驱逐节点 4)卸载node节点 5)配置域名解析 6)master2生成join命令 7)加入集群 8)删除驱逐恢复可调度 9)测试部署)
  • [8)删除驱逐恢复可调度](#文章目录 @[toc] 一、重新添加master 1)驱逐VIP 2)设置为不可调度 3)驱逐master 4)删除master3 5)清理etcd集群 6)卸载master节点 7)配置域名解析 8)master2生成join命令 二、node节点添加到集群 1)禁止调度 2)允许调度 3)驱逐节点 4)卸载node节点 5)配置域名解析 6)master2生成join命令 7)加入集群 8)删除驱逐恢复可调度 9)测试部署)
  • [9)测试部署](#文章目录 @[toc] 一、重新添加master 1)驱逐VIP 2)设置为不可调度 3)驱逐master 4)删除master3 5)清理etcd集群 6)卸载master节点 7)配置域名解析 8)master2生成join命令 二、node节点添加到集群 1)禁止调度 2)允许调度 3)驱逐节点 4)卸载node节点 5)配置域名解析 6)master2生成join命令 7)加入集群 8)删除驱逐恢复可调度 9)测试部署)

一、重新添加master

1)驱逐VIP

#查看是否存在VIP
[root@k8s-master3 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:89:72:13 brd ff:ff:ff:ff:ff:ff
    inet 192.168.4.120/24 brd 192.168.4.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet 192.168.4.100/24 scope global secondary ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:fe89:7213/64 scope link 
       valid_lft forever preferred_lft forever

#防止VIP在本节点
systemctl restart keepalived.service
systemctl restart nginx.service

2)设置为不可调度

[root@k8s-master1 ~]# kubectl cordon k8s-master3 
node/k8s-master3 cordoned
[root@k8s-master1 ~]# kubectl get nodes|grep master3
k8s-master3   Ready,SchedulingDisabled   control-plane   55m    v1.25.0

3)驱逐master

root@k8s-master3 ~]# kubectl drain k8s-master3 --delete-emptydir-data --force --ignore-daemonsets 
node/k8s-master3 cordoned
Warning: ignoring DaemonSet-managed Pods: kube-system/calico-node-q6hp2, kube-system/kube-proxy-6kkhh
node/k8s-master3 drained
[root@k8s-master3 ~]# kubectl get nodes
NAME          STATUS                     ROLES           AGE   VERSION
k8s-master1   Ready                      control-plane   44m   v1.25.0
k8s-master2   Ready                      control-plane   37m   v1.25.0
k8s-master3   Ready,SchedulingDisabled   control-plane   38m   v1.25.0
k8s-node1     Ready                      <none>          41m   v1.25.0
k8s-node2     Ready                      <none>          40m   v1.25.0
k8s-node3     Ready                      <none>          40m   v1.25.0

4)删除master3

[root@k8s-master3 ~]# kubectl delete nodes k8s-master3  
node "k8s-master3" deleted

5)清理etcd集群

#登录master2清理master3
[root@k8s-master3 ~]# kubectl get pods -n kube-system |grep etcd
etcd-k8s-master1                           1/1     Running   1             45m
etcd-k8s-master2                           1/1     Running   0             38m

#登录maste2
[root@k8s-master3 ~]# kubectl exec  -it -n kube-system etcd-k8s-master2 -- sh
#查看etcd                                                                             
sh-5.1# etcdctl --endpoints=127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=etc/kubernetes/pki/etcd/peer.crt --key=/etc/kubernetes/pki/etcd/peer.key member lis
9a59a57a652f8e2a, started, k8s-master3, https://192.168.4.120:2380, https://192.168.4.120:2379, false
c23408f409942c06, started, k8s-master2, https://192.168.4.119:2380, https://192.168.4.119:2379, false
c3509e57d5f53562, started, k8s-master1, https://192.168.4.114:2380, https://192.168.4.114:2379, false

#删除命令etcdctl --endpoints=127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=etc/kubernetes/pki/etcd/peer.crt --key=/etc/kubernetes/pki/etcd/peer.key member remove ID号
#删除master3的etcd
sh-5.1# etcdctl --endpoints=127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=etc/kubernetes/pki/etcd/peer.crt --key=/etc/kubernetes/pki/etcd/peer.key member remove 9a59a57a652f8e2a
Member 9a59a57a652f8e2a removed from cluster 366c96818b1e6d49

#查看
sh-5.1# etcdctl --endpoints=127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=etc/kubernetes/pki/etcd/peer.crt --key=/etc/kubernetes/pki/etcd/peer.key member lis
c23408f409942c06, started, k8s-master2, https://192.168.4.119:2380, https://192.168.4.119:2379, false
c3509e57d5f53562, started, k8s-master1, https://192.168.4.114:2380, https://192.168.4.114:2379, false

6)卸载master节点

kubeadm  reset -f 
rm -f  $HOME/.kube/config
rm -rf /etc/kubernetes/
rm -rf /var/lib/kubelet/
systemctl restart  kubelet

7)配置域名解析

  • 注意如果是新增需要按照k8s的基础准备装好。

    [root@k8s-master3 ~]# cat /etc/hosts
    192.168.4.114 k8s-master1
    192.168.4.119 k8s-master2
    192.168.4.120 k8s-master3
    192.168.4.115 k8s-node1
    192.168.4.116 k8s-node2
    192.168.4.118 k8s-node3
    192.168.4.100 jiawenchaovip.com

8)master2生成join命令

#生成证书将会被上传到集群,并存储在指定的 Secret 中,供其他节点使用
[root@k8s-master2 ~]# kubeadm init phase upload-certs --upload-certs
I0201 15:24:39.539360   17846 version.go:256] remote version is much newer: v1.29.1; falling back to: stable-1.25
[upload-certs] Storing the certificates in Secret "kubeadm-certs" in the "kube-system" Namespace
[upload-certs] Using certificate key:
67c903efd1b70d4040815fe7fccf96c2d75324823dea25b9040b334e8811dddd
  • Storing the certificates in Secret "kubeadm-certs" in the "kube-system" Namespace:这部分表示将证书存储在 kube-system 命名空间下的名为 kubeadm-certs 的 Secret 中。Secret 是 Kubernetes 中用于存储敏感信息,如证书、令牌等的机制。

  • Using certificate key: 67c903efd1b70d4040815fe7fccf96c2d75324823dea25b9040b334e8811dddd:这部分表示使用了密钥 67c903efd1b70d4040815fe7fccf96c2d75324823dea25b9040b334e8811dddd 来加密和解密存储的证书。

    #生成节点加入到主控节点的命令
    [root@k8s-master2 ~]# kubeadm token create --print-join-command
    kubeadm join jiawenchaovip.com:6443 --token wc2wqq.sh4lpek38q5pga3j --discovery-token-ca-cert-hash sha256:c3b39675b78c612ceee3bb73c520f1565be57ada4a0cf7576787a0c6a89e75b0

  • kubeadm join jiawenchaovip.com:6443:这部分表示要将节点加入到名为 "jiawenchaovip.com" 的 Kubernetes 主控节点,该主控节点的地址是 jiawenchaovip.com,端口是 6443。这部分是通过 kubeadm init 命令在主控节点上生成的。

  • --token wc2wqq.sh4lpek38q5pga3j:这部分是指定用于身份验证的令牌(token),节点需要使用这个令牌来与主控节点建立连接并加入集群。每个令牌都有一定的有效期,过期后需要重新生成。

  • --discovery-token-ca-cert-hash sha256:c3b39675b78c612ceee3bb73c520f1565be57ada4a0cf7576787a0c6a89e75b0:这部分是表示主控节点的证书摘要信息,节点需要通过这个信息来验证主控节点的身份。这个摘要信息是通过 kubeadm init 命令在主控节点上生成的。

    #修改为master节点添加命令,添加--control-plane --certificate-key并执行
    kubeadm join jiawenchaovip.com:6443 --token wc2wqq.sh4lpek38q5pga3j --discovery-token-ca-cert-hash sha256:c3b39675b78c612ceee3bb73c520f1565be57ada4a0cf7576787a0c6a89e75b0
    --control-plane --certificate-key 67c903efd1b70d4040815fe7fccf96c2d75324823dea25b9040b334e8811dddd

  • kubeadm join jiawenchaovip.com:6443:表示将节点加入指定地址为 jiawenchaovip.com,端口为 6443 的 Kubernetes 控制平面。

  • --token wc2wqq.sh4lpek38q5pga3j:该部分表示节点使用的加入令牌(token),节点需要使用这个令牌来与控制平面节点建立连接并加入集群。

  • --discovery-token-ca-cert-hash sha256:c3b39675b78c612ceee3bb73c520f1565be57ada4a0cf7576787a0c6a89e75b0:这部分是关于发现令牌的 CA 证书的哈希值,节点需要通过这个哈希值来验证控制平面节点的身份。

  • --control-plane:表示将节点加入到控制平面中,即作为主控节点。

  • --certificate-key 67c903efd1b70d4040815fe7fccf96c2d75324823dea25b9040b334e8811dddd:指定的证书密钥,用于加密和解密存储的证书信息。

    #检查节点
    [root@k8s-master3 ~]# kubectl get nodes|grep master3
    k8s-master3 Ready control-plane 93s v1.25.0

    #查看证书
    [root@k8s-master3 ~]# kubeadm certs check-expiration
    CERTIFICATE EXPIRES RESIDUAL TIME CERTIFICATE AUTHORITY EXTERNALLY MANAGED
    admin.conf Jan 08, 2124 07:32 UTC 99y ca no
    apiserver Jan 08, 2124 07:32 UTC 99y ca no
    apiserver-etcd-client Jan 08, 2124 07:32 UTC 99y etcd-ca no
    apiserver-kubelet-client Jan 08, 2124 07:32 UTC 99y ca no
    controller-manager.conf Jan 08, 2124 07:32 UTC 99y ca no
    etcd-healthcheck-client Jan 08, 2124 07:32 UTC 99y etcd-ca no
    etcd-peer Jan 08, 2124 07:32 UTC 99y etcd-ca no
    etcd-server Jan 08, 2124 07:32 UTC 99y etcd-ca no
    front-proxy-client Jan 08, 2124 07:32 UTC 99y front-proxy-ca no
    scheduler.conf Jan 08, 2124 07:32 UTC 99y ca no

    CERTIFICATE AUTHORITY EXPIRES RESIDUAL TIME EXTERNALLY MANAGED
    ca Jan 08, 2124 06:09 UTC 99y no
    etcd-ca Jan 08, 2124 06:09 UTC 99y no
    front-proxy-ca Jan 08, 2124 06:09 UTC 99y no


二、node节点添加到集群

1)禁止调度

#禁止节点调度  
[root@k8s-master1 ~]# kubectl cordon k8s-node3
node/k8s-node3 cordoned
[root@k8s-master1 ~]# kubectl get nodes|grep node3
k8s-node3     Ready,SchedulingDisabled   <none>          111m   v1.25.0

#n此时pod还在,如果新部署将不能调度到这个节点。
[root@k8s-master1 ~]# kubectl get pod  -o wide|grep node3   
nginx-deployment-cd55c47f5-5jjbd   1/1     Running   0          99s   10.244.107.195   k8s-node3   <none>           <none>
  • kubectl cordon:这个命令用于标记一个节点为不可调度状态。当使用 kubectl cordon 命令时,Kubernetes 不会在该节点上调度新的 Pod,但已经在节点上运行的 Pod 不会受到影响。这个命令一般用于暂时阻止新的 Pod 被调度到某个节点,例如,当需要对节点进行维护或排障时。
  • kubectl drain:这个命令用于优雅地驱逐一个节点上的 Pod,并标记该节点为不可调度状态。当使用 kubectl drain 命令时,Kubernetes 会按照优雅退出的方式终止节点上的所有 Pod,并在其它节点上重新调度这些 Pod。通常搭配 --force 参数可以用来强制执行这个流程。

2)允许调度

#允许节点调度
kubeclt uncordon k8s-node3

3)驱逐节点

#驱逐node3上的pod
[root@k8s-master1 ~]# kubectl drain k8s-node3 --delete-emptydir-data --force --ignore-daemonsets 
node/k8s-node3 already cordoned
Warning: ignoring DaemonSet-managed Pods: kube-system/calico-node-zxwtf, kube-system/kube-proxy-k5h7f
evicting pod default/nginx-deployment-cd55c47f5-5jjbd
pod/nginx-deployment-cd55c47f5-5jjbd evicted
node/k8s-node3 drained

#发现pod已经从node3节点飘到node2节点
[root@k8s-master1 ~]# kubectl get pod  -o wide           
NAME                               READY   STATUS    RESTARTS   AGE    IP               NODE        NOMINATED NODE   READINESS GATES
nginx-deployment-cd55c47f5-gsjvv   1/1     Running   0          5m7s   10.244.36.67     k8s-node1   <none>           <none>
nginx-deployment-cd55c47f5-kl6m2   1/1     Running   0          5m7s   10.244.169.131   k8s-node2   <none>           <none>
nginx-deployment-cd55c47f5-r24zl   1/1     Running   0          37s    10.244.36.68     k8s-node1   <none>           <none>
  • --force 当一些pod不是经 ReplicationController, ReplicaSet, Job, DaemonSet 或者StatefulSet 管理的时候就需要用--force来强制执行 (例如:kube-proxy)
  • --ignore-daemonsets 无视DaemonSet管理下的Pod。即--ignore-daemonsets往往需要指定的,这是因为deamonset会忽略unschedulable标签(使用kubectl drain时会自动给节点打上不可调度标签),因此deamonset控制器控制的pod被删除后可能马上又在此节点上启动起来,这样就会成为死循环.因此这里忽略daemonset。
  • --delete-local-data 如果有mount local volumn的pod,会强制杀掉该pod。

4)卸载node节点

kubeadm  reset -f 
rm -rf /etc/kubernetes/
rm -rf /var/lib/kubelet/
systemctl restart  kubelet

5)配置域名解析

  • 注意如果是新增需要按照k8s的基础准备装好。

    [root@k8s-master3 ~]# cat /etc/hosts
    192.168.4.114 k8s-master1
    192.168.4.119 k8s-master2
    192.168.4.120 k8s-master3
    192.168.4.115 k8s-node1
    192.168.4.116 k8s-node2
    192.168.4.118 k8s-node3
    192.168.4.100 jiawenchaovip.com

6)master2生成join命令

#生成节点加入到主控节点的命令
[root@k8s-master2 ~]# kubeadm token create --print-join-command
kubeadm join jiawenchaovip.com:6443 --token wc2wqq.sh4lpek38q5pga3j --discovery-token-ca-cert-hash sha256:c3b39675b78c612ceee3bb73c520f1565be57ada4a0cf7576787a0c6a89e75b0 
  • kubeadm join jiawenchaovip.com:6443:这部分表示要将节点加入到名为 "jiawenchaovip.com" 的 Kubernetes 主控节点,该主控节点的地址是 jiawenchaovip.com,端口是 6443。这部分是通过 kubeadm init 命令在主控节点上生成的。
  • --token wc2wqq.sh4lpek38q5pga3j:这部分是指定用于身份验证的令牌(token),节点需要使用这个令牌来与主控节点建立连接并加入集群。每个令牌都有一定的有效期,过期后需要重新生成。
  • --discovery-token-ca-cert-hash sha256:c3b39675b78c612ceee3bb73c520f1565be57ada4a0cf7576787a0c6a89e75b0:这部分是表示主控节点的证书摘要信息,节点需要通过这个信息来验证主控节点的身份。这个摘要信息是通过 kubeadm init 命令在主控节点上生成的。

7)加入集群

kubeadm join jiawenchaovip.com:6443 --token wc2wqq.sh4lpek38q5pga3j --discovery-token-ca-cert-hash sha256:c3b39675b78c612ceee3bb73c520f1565be57ada4a0cf7576787a0c6a89e75b0 

8)删除驱逐恢复可调度

#master操作
kubectl uncordon k8s-node3

#node3节点重启
systemctl restart kubelet

#查看
[root@k8s-master1 ~]# kubectl get nodes|grep node3
k8s-node3     Ready    <none>          132m   v1.25.0

9)测试部署

[root@k8s-master1 ~]# kubectl apply -f nginx.yaml 
deployment.apps/nginx-deployment created
service/nginx-service created
[root@k8s-master1 ~]# kubectl get pods -o wide
NAME                               READY   STATUS    RESTARTS   AGE   IP               NODE        NOMINATED NODE   READINESS GATES
nginx-deployment-cd55c47f5-966bz   1/1     Running   0          7s    10.244.36.69     k8s-node1   <none>           <none>
nginx-deployment-cd55c47f5-wf872   1/1     Running   0          7s    10.244.107.196   k8s-node3   <none>           <none>
nginx-deployment-cd55c47f5-xp9rg   1/1     Running   0          7s    10.244.169.132   k8s-node2   <none>           <none>
相关推荐
皮锤打乌龟5 小时前
(干货)Jenkins使用kubernetes插件连接k8s的认证方式
运维·kubernetes·jenkins
南猿北者6 小时前
docker Network(网络)
网络·docker·容器
ggaofeng9 小时前
通过命令学习k8s
云原生·容器·kubernetes
death bell9 小时前
Docker基础概念
运维·docker·容器
想学习java初学者12 小时前
Docker Compose部署Kafka(非Zookeeper)
docker·容器·kafka
qq_道可道12 小时前
K8S升级到1.24后,切换运行时导致 dind 构建镜像慢根因定位与解决
云原生·容器·kubernetes
SONGW201812 小时前
k8s拓扑域 :topologyKey
kubernetes
weixin_4381973814 小时前
K8S实现反向代理,负载均衡
linux·运维·服务器·nginx·kubernetes
郝同学的测开笔记15 小时前
云原生探索系列(十二):Go 语言接口详解
后端·云原生·go
mit6.82416 小时前
[Docker#5] 镜像仓库 | 命令 | 实验:搭建Nginx | 创建私有仓库
linux·后端·docker·云原生