k8s集群管理
一、Node管理:
1、 Node的隔离与恢复:
在硬件升级、硬件维护等情况下,我们需要将某些Node隔离,使其 脱离Kubernetes集群的调度范围。Kubernetes提供了一种机制,既可以将 Node纳入调度范围,也可以将Node脱离调度范围。
使用kubectl的子命令cordon和uncordon可以实现将Node进行隔离调度和恢复调度操作。
例如:通过命令将k8s-node1进行隔离,然后查看状态可以看到显示为SchedulingDisabled,如图:

再次通过命令kubectl uncordon将节点恢复回可调度范围,如图:

注意: 将某个Node脱离调度范围时,在其上运行的Pod并不会自动停止,管理员需要手动停止在该Node上运行的Pod
2、node扩容:
通过kubeadm部署了k8s集群后,如果要新增Node节点,应该做如下基础工作:
- 系统内核初始化设置
- docker安装
- 安装kubeadm、kubelet等组件
- 修改节点主机名为k8s-node3(举例)
- 修改所有机器的/etc/hosts,将新节点加入到配置中
在master节点创建token和hash值,然后通过kubeadm join加入到集群即可
注意:可能需要手动拉取pause镜像和kube-proxy镜像,calico镜像会自动拉取下来
3、删除node:
首先在 master 节点上依次执行以下两个命令:
#排除此节点,将上面的pod清除,重新调度到别的节点上
kubectl drain k8s-node1 --delete-local-data --force --ignore-daemonsets
#删除节点
kubectl delete node k8s-node1
执行后通过 kubectl get node 命令可以看到 k8s-node1 已被成功删除:
接着在 k8s-node1 这个 Node 节点上执行如下命令,这样该节点即完全从 Cluster 中脱离开来:
#重置节点
kubeadm reset


