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

标签