k8s 集群Node节点扩缩容
  TEZNKK3IfmPf 2023年11月13日 34 0

在实际生产系统中经常遇到服务器容量不足的情况,这时候就需要购买新的服务器,对应用系统进行水平扩展以实现扩容。
在k8s中,对一个新的node的加入非常简单,只需要在node节点上安装docker、kubelet和kube-proxy服务,然后将kubelet和kube-proxy的启动参数中的master url指定为当前kubernetes集群master的地址,然后启动服务即可。基于kubelet的自动注册机制,新的node会自动加入现有的kubernetes集群中,如下图:

k8s 集群Node节点扩缩容

kubectl drain 安全驱逐节点上面所有的 pod

安全驱逐的方式将会允许 pod 里面的容器遵循指定的 PodDisruptionBudgets 执行优雅的中止。
注: 默认情况下,kubectl drain 会忽略那些不能杀死的系统类型的 pod,如果您想了解更多详细的内容,请参考kubectl drain

[root@edunode251 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-node1 Ready master 4d1h v1.12.3
k8s-node2 Ready <none> 4d v1.12.3
k8s-node3 Ready <none> 4d v1.12.3
k8s-node4 Ready <none> 89m v1.12.3


# #将当前运行在该节点上的容器驱离
kubectl drain k8s-node4

#将该节点设置为不可调度模式
kubectl cordon k8s-node4



执行完成后,如果没有任何错误返回,您可以关闭节点(如果是在云平台上,可以删除支持该节点的虚拟机)。如果在维护操作期间想要将节点留在集群,那么您需要运行下面命令:
kubectl uncordon k8s-node4

将该节点设置为不可调度模式

#将该节点设置为不可调度模式
kubectl cordon k8s-node4


#将该节点设置为可调度模式:
kubectl uncordon k8s-node4

删除node节点

kubectl delete node k8s-node4

kubeadm reset

# 在被删除的节点执行
kubeadm reset -f

删除废弃网络(如果不执行,此节点加入其他集群会出错)

ifconfig cni0 down
ip link delete cni0
ifconfig flannel.1 down
ip link delete flannel.1
rm -rf /var/lib/cni/
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月31日   29   0   0 服务器
  TEZNKK3IfmPf   2024年05月31日   42   0   0 linux服务器
  TEZNKK3IfmPf   2024年05月31日   27   0   0 linux服务器centos
  TEZNKK3IfmPf   2024年05月31日   40   0   0 服务器java
  TEZNKK3IfmPf   2024年05月31日   35   0   0 服务器http
TEZNKK3IfmPf