首页主机资讯centos k8s部署中节点如何管理

centos k8s部署中节点如何管理

时间2025-11-06 12:31:04发布访客分类主机资讯浏览495
导读:CentOS环境下Kubernetes节点管理指南 在CentOS系统中,Kubernetes(k8s)节点的管理是集群运维的核心环节,涵盖节点部署、状态监控、调度控制、新增/删除等全生命周期操作。以下是具体流程与关键注意事项: 一、节点部...

CentOS环境下Kubernetes节点管理指南
在CentOS系统中,Kubernetes(k8s)节点的管理是集群运维的核心环节,涵盖节点部署、状态监控、调度控制、新增/删除等全生命周期操作。以下是具体流程与关键注意事项:

一、节点部署前准备(所有节点通用)

在添加或初始化节点前,需完成以下系统配置,确保节点符合Kubernetes要求:

  1. 关闭不必要的服务
    • 禁用SELinux(避免权限冲突):setenforce 0;永久生效需修改/etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=disabled
    • 关闭Swap分区(Kubernetes要求):swapoff -a;永久生效需注释/etc/fstab中的Swap行。
    • 关闭防火墙(或放行Kubernetes端口,默认6443):systemctl stop firewalld & & systemctl disable firewalld
  2. 配置网络与主机名
    • 设置静态IP(避免DHCP变动导致节点失联),编辑/etc/sysconfig/network-scripts/ifcfg-eth0文件,配置BOOTPROTO=static、IP地址、子网掩码、网关等参数。
    • 统一主机名(便于识别):hostnamectl set-hostname < 节点名称> ,并在/etc/hosts文件中添加节点IP与主机名的映射(如192.168.1.100 k8s-master)。
  3. 同步系统时间
    安装并配置NTP服务(如chronyd),确保所有节点时间一致,避免证书验证失败或调度异常:yum install -y chronyd & & systemctl enable chronyd & & systemctl start chronyd

二、节点状态监控

使用kubectl命令可快速查看节点的运行状态、资源使用情况及详细信息:

  1. 查看节点列表
    kubectl get nodes:显示集群中所有节点的名称、状态(Ready表示正常,NotReady表示异常)、角色(Master/Worker)及Kubernetes版本。
  2. 查看节点详细信息
    kubectl describe node < 节点名称> :输出节点的IP地址、标签(Labels)、资源容量(CPU/内存)、分配情况(Allocatable)、条件状态(如DiskPressure磁盘压力、MemoryPressure内存压力)及事件(Events)。
  3. 查看节点指标
    结合Metrics Server(需提前部署)使用kubectl top nodes命令,查看节点的CPU、内存实时使用率,快速定位资源瓶颈。

三、节点调度控制

通过调度命令可实现节点的不可调度、Pod驱逐、恢复调度,确保维护或扩容时业务不受影响:

  1. 标记节点为不可调度
    kubectl cordon < 节点名称> :将节点标记为SchedulingDisabled(Ready,SchedulingDisabled状态),后续新Pod不会调度到该节点,但现有Pod继续运行。
  2. 驱逐节点上的Pod
    kubectl drain < 节点名称> --delete-local-data --ignore-daemonsets
    • 将节点上的Pod驱逐至其他可用节点(自动处理Pod重建);
    • --delete-local-data:删除节点上的本地存储数据(如EmptyDir卷),若Pod无需持久化数据可添加;
    • --ignore-daemonsets:忽略DaemonSet管理的Pod(如kube-proxy、flannel),避免影响集群基础服务。
      注:kubectl drain会自动调用cordon命令,无需重复执行。
  3. 恢复节点调度
    kubectl uncordon < 节点名称> :将节点恢复为可调度状态(Ready状态),新Pod可正常调度至该节点。

四、新增节点到集群

新增Worker节点需完成环境准备获取Join命令执行Join操作三个步骤:

  1. 准备新节点
    按照“节点部署前准备”要求配置新节点(关闭SELinux、Swap,配置静态IP等),并安装Docker/containerd(容器运行时)、kubelet、kubeadm组件(版本需与Master节点一致)。
  2. 获取Join命令
    在Master节点上执行kubeadm token create --print-join-command,生成包含token(身份验证令牌)、discovery-token-ca-cert-hash(CA证书哈希值)的kubeadm join命令(如kubeadm join 192.168.1.100:6443 --token abcdef.1234567890abcdef --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)。
  3. 执行Join操作
    在新节点上运行上述kubeadm join命令,等待命令执行完成(约1-2分钟)。
  4. 验证节点加入
    在Master节点上执行kubectl get nodes,若新节点状态为Ready,则表示加入成功。若状态为NotReady,需检查新节点的kubelet日志(journalctl -u kubelet -f)排查问题(如网络不通、证书错误)。

五、删除节点

删除节点需先驱逐Pod再移除节点,确保数据安全与集群稳定:

  1. 驱逐节点上的Pod
    kubectl drain < 节点名称> --delete-local-data --ignore-daemonsets:将节点上的Pod迁移至其他节点(DaemonSet管理的Pod除外)。
  2. 删除节点
    kubectl delete node < 节点名称> :从Kubernetes集群中移除该节点(仅删除集群中的元数据,不影响节点本身的系统环境)。
  3. 清理节点环境(在被删除节点上执行)
    kubeadm reset -f:重置节点的Kubernetes配置(清除kubelet、kubeadm数据),恢复节点至初始状态(需重新执行kubeadm join才能再次加入集群)。

六、注意事项

  1. 新增节点
    • 确保新节点的Kubernetes组件版本与集群版本一致(避免兼容性问题);
    • 若节点无法加入集群,需检查网络连通性(Master节点与Worker节点之间能否访问6443端口)、token有效期(默认24小时,过期需重新生成)、CA证书哈希值是否正确。
  2. 删除节点
    • 删除Master节点需谨慎(会影响集群控制平面),若需删除Master节点,需先转移控制平面角色至其他节点(如使用kubeadm upgrade或手动迁移Etcd数据);
    • 删除节点前,确保业务已迁移至其他节点,避免Pod丢失(尤其是有状态Pod,需提前备份数据)。
  3. 日常维护
    • 定期检查节点状态(kubectl get nodes),及时处理NotReady状态的节点;
    • 监控节点资源使用情况(kubectl top nodes),避免资源耗尽导致Pod被驱逐;
    • 定期更新Kubernetes组件(使用yum update),修复安全漏洞。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos k8s部署中节点如何管理
本文地址: https://pptw.com/jishu/743857.html
怎样确保centos k8s部署稳定 centos反引号社区支持如何

游客 回复需填写必要信息