k8s 移除node 全过程

 可以看到node3上有 5个pod

[root@VM-2-5-centos ~]# kubectl get pod -A -owide
NAMESPACE     NAME                                      READY   STATUS    RESTARTS   AGE     IP               NODE             NOMINATED NODE   READINESS GATES
kube-system   calico-kube-controllers-97769f7c7-8hk6l   1/1     Running   0          4h25m   10.244.169.193   vm-2-15-centos   <none>           <none>
kube-system   calico-node-gxlpl                         1/1     Running   0          4h25m   172.16.2.3       vm-2-3-centos    <none>           <none>
kube-system   calico-node-mlbg4                         1/1     Running   0          4h25m   172.16.2.15      vm-2-15-centos   <none>           <none>
kube-system   calico-node-sxdfw                         1/1     Running   0          4h25m   172.16.2.5       vm-2-5-centos    <none>           <none>
kube-system   coredns-7f89b7bc75-lgvr2                  1/1     Running   0          4h28m   10.244.169.194   vm-2-15-centos   <none>           <none>
kube-system   coredns-7f89b7bc75-phvhn                  1/1     Running   0          4h28m   10.244.169.195   vm-2-15-centos   <none>           <none>
kube-system   etcd-vm-2-5-centos                        1/1     Running   0          4h28m   172.16.2.5       vm-2-5-centos    <none>           <none>
kube-system   kube-apiserver-vm-2-5-centos              1/1     Running   0          4h28m   172.16.2.5       vm-2-5-centos    <none>           <none>
kube-system   kube-controller-manager-vm-2-5-centos     1/1     Running   0          4h28m   172.16.2.5       vm-2-5-centos    <none>           <none>
kube-system   kube-proxy-8pcct                          1/1     Running   0          4h27m   172.16.2.15      vm-2-15-centos   <none>           <none>
kube-system   kube-proxy-br94b                          1/1     Running   0          4h27m   172.16.2.3       vm-2-3-centos    <none>           <none>
kube-system   kube-proxy-z2xcz                          1/1     Running   0          4h28m   172.16.2.5       vm-2-5-centos    <none>           <none>
kube-system   kube-scheduler-vm-2-5-centos              1/1     Running   0          4h28m   172.16.2.5       vm-2-5-centos    <none>           <none>
kube-system   metrics-server-b66888848-kdf7q            1/1     Running   0          4h23m   10.244.71.1      vm-2-3-centos    <none>           <none>
[root@VM-2-5-centos ~]# kubectl get node
NAME             STATUS   ROLES                  AGE     VERSION
vm-2-15-centos   Ready    <none>                 4h27m   v1.20.4
vm-2-3-centos    Ready    <none>                 4h28m   v1.20.4
vm-2-5-centos    Ready    control-plane,master   4h29m   v1.20.4

设置pod 不可调度 

[root@VM-2-5-centos ~]# kubectl cordon vm-2-15-centos
node/vm-2-15-centos cordoned
[root@VM-2-5-centos ~]# kubectl get node
NAME             STATUS                     ROLES                  AGE     VERSION
vm-2-15-centos   Ready,SchedulingDisabled   <none>                 4h28m   v1.20.4
vm-2-3-centos    Ready                      <none>                 4h28m   v1.20.4
vm-2-5-centos    Ready                      control-plane,master   4h30m   v1.20.4

 驱逐node3 上的 pod,报错

[root@VM-2-5-centos ~]# kubectl drain vm-2-15-centos --ignore-daemonsets=false
node/vm-2-15-centos already cordoned
error: unable to drain node "vm-2-15-centos", aborting command...

There are pending nodes to be drained:
 vm-2-15-centos
error: cannot delete DaemonSet-managed Pods (use --ignore-daemonsets to ignore): kube-system/calico-node-mlbg4, kube-system/kube-proxy-8pcct

 再次执行,告警:daemonset 无法驱逐,不用管,一般接收流量的pod 被驱逐就好了

[root@VM-2-5-centos ~]# kubectl drain vm-2-15-centos --ignore-daemonsets 
node/vm-2-15-centos already cordoned
WARNING: ignoring DaemonSet-managed Pods: kube-system/calico-node-mlbg4, kube-system/kube-proxy-8pcct
evicting pod kube-system/coredns-7f89b7bc75-phvhn
evicting pod kube-system/calico-kube-controllers-97769f7c7-8hk6l
evicting pod kube-system/coredns-7f89b7bc75-lgvr2
pod/calico-kube-controllers-97769f7c7-8hk6l evicted
pod/coredns-7f89b7bc75-phvhn evicted
pod/coredns-7f89b7bc75-lgvr2 evicted
node/vm-2-15-centos evicted

 可以看到node是不可用状态

[root@VM-2-5-centos ~]# kubectl get node -A
NAME             STATUS                     ROLES                  AGE     VERSION
vm-2-15-centos   Ready,SchedulingDisabled   <none>                 4h32m   v1.20.4
vm-2-3-centos    Ready                      <none>                 4h32m   v1.20.4
vm-2-5-centos    Ready                      control-plane,master   4h33m   v1.20.4

删除node

[root@VM-2-5-centos ~]# kubectl delete node  vm-2-15-centos
node "vm-2-15-centos" deleted

 这里我们可以看到node被删除,pod 还没消失,还有2个daemonset 程序这里需要等待30s

[root@VM-2-5-centos ~]# kubectl get pod  -A -owide
NAMESPACE     NAME                                      READY   STATUS    RESTARTS   AGE     IP            NODE             NOMINATED NODE   READINESS GATES
kube-system   calico-kube-controllers-97769f7c7-zjpr6   1/1     Running   0          102s    10.244.71.2   vm-2-3-centos    <none>           <none>
kube-system   calico-node-gxlpl                         1/1     Running   0          4h32m   172.16.2.3    vm-2-3-centos    <none>           <none>
kube-system   calico-node-mlbg4                         1/1     Running   0          4h32m   172.16.2.15   vm-2-15-centos   <none>           <none>
kube-system   calico-node-sxdfw                         1/1     Running   0          4h32m   172.16.2.5    vm-2-5-centos    <none>           <none>
kube-system   coredns-7f89b7bc75-5d29s                  1/1     Running   0          102s    10.244.71.3   vm-2-3-centos    <none>           <none>
kube-system   coredns-7f89b7bc75-6rl9q                  1/1     Running   0          102s    10.244.71.4   vm-2-3-centos    <none>           <none>
kube-system   etcd-vm-2-5-centos                        1/1     Running   0          4h34m   172.16.2.5    vm-2-5-centos    <none>           <none>
kube-system   kube-apiserver-vm-2-5-centos              1/1     Running   0          4h34m   172.16.2.5    vm-2-5-centos    <none>           <none>
kube-system   kube-controller-manager-vm-2-5-centos     1/1     Running   0          4h34m   172.16.2.5    vm-2-5-centos    <none>           <none>
kube-system   kube-proxy-8pcct                          1/1     Running   0          4h33m   172.16.2.15   vm-2-15-centos   <none>           <none>
kube-system   kube-proxy-br94b                          1/1     Running   0          4h33m   172.16.2.3    vm-2-3-centos    <none>           <none>
kube-system   kube-proxy-z2xcz                          1/1     Running   0          4h34m   172.16.2.5    vm-2-5-centos    <none>           <none>
kube-system   kube-scheduler-vm-2-5-centos              1/1     Running   0          4h34m   172.16.2.5    vm-2-5-centos    <none>           <none>
kube-system   metrics-server-b66888848-kdf7q            1/1     Running   0          4h29m   10.244.71.1   vm-2-3-centos    <none>           <none>
[root@VM-2-5-centos ~]# kubectl get node 
NAME            STATUS   ROLES                  AGE     VERSION
vm-2-3-centos   Ready    <none>                 4h34m   v1.20.4
vm-2-5-centos   Ready    control-plane,master   4h35m   v1.20.4

 再次查看已删除

[root@VM-2-5-centos ~]# kubectl get pod  -A -owide
NAMESPACE     NAME                                      READY   STATUS    RESTARTS   AGE     IP            NODE            NOMINATED NODE   READINESS GATES
kube-system   calico-kube-controllers-97769f7c7-zjpr6   1/1     Running   0          2m50s   10.244.71.2   vm-2-3-centos   <none>           <none>
kube-system   calico-node-gxlpl                         1/1     Running   0          4h33m   172.16.2.3    vm-2-3-centos   <none>           <none>
kube-system   calico-node-sxdfw                         1/1     Running   0          4h33m   172.16.2.5    vm-2-5-centos   <none>           <none>
kube-system   coredns-7f89b7bc75-5d29s                  1/1     Running   0          2m50s   10.244.71.3   vm-2-3-centos   <none>           <none>
kube-system   coredns-7f89b7bc75-6rl9q                  1/1     Running   0          2m50s   10.244.71.4   vm-2-3-centos   <none>           <none>
kube-system   etcd-vm-2-5-centos                        1/1     Running   0          4h36m   172.16.2.5    vm-2-5-centos   <none>           <none>
kube-system   kube-apiserver-vm-2-5-centos              1/1     Running   0          4h36m   172.16.2.5    vm-2-5-centos   <none>           <none>
kube-system   kube-controller-manager-vm-2-5-centos     1/1     Running   0          4h36m   172.16.2.5    vm-2-5-centos   <none>           <none>
kube-system   kube-proxy-br94b                          1/1     Running   0          4h35m   172.16.2.3    vm-2-3-centos   <none>           <none>
kube-system   kube-proxy-z2xcz                          1/1     Running   0          4h35m   172.16.2.5    vm-2-5-centos   <none>           <none>
kube-system   kube-scheduler-vm-2-5-centos              1/1     Running   0          4h36m   172.16.2.5    vm-2-5-centos   <none>           <none>
kube-system   metrics-server-b66888848-kdf7q            1/1     Running   0          4h30m   10.244.71.1   vm-2-3-centos   <none>           <none>

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
K8S(Kubernetes)是一个开源的容器编排工具,用于自动化部署、扩展和管理容器化应用程序。在K8S中,Node(节点)是指一个运行Kubernetes集群的机器,它可以是物理服务器、虚拟机或者云服务器。 为了设置Node的角色,我们可以通过以下步骤进行操作: 1. 添加Node: 首先,我们需要将一个新的Node添加到已经存在的Kubernetes集群中。这可以通过执行kubectl命令或者API请求来完成。在添加Node时,会生成一个唯一的Node ID,用于识别该Node。 2. 分配角色: 在Kubernetes中,Node有不同的角色,例如Master或者Worker。Master节点用于管理和控制整个集群的操作,而Worker节点用于运行容器工作负载。我们可以通过kubectl命令或者修改Cluster配置文件来分配角色。 3. 配置标签: 为了进一步区分Node,我们可以为其添加标签。标签是键值对的形式,用于根据特定的要求选择Node。例如,我们可以为Node添加标签"environment=production",以指示该Node用于生产环境。 4. 节点亲和性(node affinity)和容忍度(tolerations): 对于特定的工作负载,我们可以配置节点亲和性和容忍度规则,以使其仅在满足特定条件的Node上运行。节点亲和性可以根据标签选择特定的Node,而容忍度则定义了能够容忍的节点条件。 5. 高可用性和自动伸缩: K8S还支持高可用性和自动伸缩功能。通过将多个Master节点配置为高可用模式,可以确保集群的稳定性和可靠性。自动伸缩功能可根据工作负载的变化自动扩展或收缩Node。 通过上述步骤,我们可以轻松地设置K8SNode角色,并根据需求对Node进行管理和配置。这些步骤还可以根据Kubernetes的版本和部署方式进行细微调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值