K8S集群云服务器节点配置修改简明指南
文章分类:技术文档 /
创建时间:2025-08-02
在云服务器上搭建K8S(Kubernetes)集群后,普通用户难免遇到调整节点配置的需求——无论是优化资源分配、适配业务场景,还是修复调度异常。本文结合实际操作经验,从准备到验证,详解节点配置修改的全流程,并补充自动化脚本技巧,帮你更高效完成操作。
前期准备:确认操作基础条件
动手修改前,先确认三个基础条件:
1. 权限有效性:确保当前账号有云服务器的SSH登录权限,且在K8S集群中具备编辑节点的RBAC(基于角色的访问控制)权限(可通过`kubectl auth can-i edit nodes`验证);
2. 工具就绪:本地已安装kubectl(K8S命令行工具)并配置集群kubeconfig文件(可通过`kubectl cluster-info`检查连接状态);
3. 备份保障:对关键节点执行`kubectl get node <节点名> -o yaml > node-backup.yaml`,提前备份原始配置,避免操作失误后无法回滚。
第一步:精准定位当前配置
修改前必须明确节点现状。通过两条命令快速获取信息:
- 列出所有节点:`kubectl get nodes`,输出会显示节点名称、状态、角色(如master/worker)等基础信息;
- 查看详细配置:`kubectl describe node <节点名>`(例:`kubectl describe node worker-01`),结果包含资源使用(CPU/内存分配率)、网络地址、已绑定标签(Labels)及污点(Taints)等核心数据。
资源配置修改:从Pod到节点的动态调整
若需调整节点资源(如限制Pod过度占用CPU/内存),关键是修改Pod的资源请求(requests)与限制(limits)。直接编辑YAML文件是最直观的方式,示例配置如下:
apiVersion: v1
kind: Pod
metadata:
name: app-pod
spec:
containers:
- name: main-container
image: nginx:alpine
resources:
requests: # 容器启动需至少满足的资源
cpu: "200m" # 0.2核
memory: "128Mi" # 128MB
limits: # 容器最多可使用的资源
cpu: "500m"
memory: "256Mi"
修改后执行`kubectl apply -f pod-config.yaml`生效。若需批量调整同类型Pod,可结合`kubectl patch`命令:
`kubectl patch pod app-pod -p '{"spec":{"containers":[{"name":"main-container","resources":{"limits":{"cpu":"1"}}]}}'`
网络配置修改:操作系统级调整
若要修改节点IP地址或子网(如因网络规划变更),需登录云服务器操作系统操作。以常用的CentOS 7为例:
1. 编辑网卡配置文件(路径通常为`/etc/sysconfig/network-scripts/ifcfg-eth0`),修改`IPADDR`(IP地址)、`NETMASK`(子网掩码)、`GATEWAY`(网关)字段;
2. 重启网络服务使配置生效:`systemctl restart network`(CentOS 7)或`nmcli connection up eth0`(CentOS 8+);
3. 验证网络连通性:`ping 网关地址`确认路由正常,`kubectl get pods -o wide`检查Pod是否因IP变更出现网络异常。
标签与污点:控制Pod调度的关键
标签(Labels)和污点(Taints)是K8S调度的核心策略。
- 标签操作:通过`kubectl label nodes`命令灵活管理。例如为节点标记存储类型:
`kubectl label nodes worker-01 disk-type=nvme`(添加标签);
`kubectl label nodes worker-01 disk-type-`(删除标签,末尾加`-`)。
- 污点操作:使用`kubectl taint`控制Pod是否调度到节点。例如禁止新Pod调度到故障节点:
`kubectl taint nodes worker-01 node-failure=true:NoSchedule`(添加污点);
`kubectl taint nodes worker-01 node-failure=true:NoSchedule-`(移除污点)。
最后一步:多维度验证修改结果
修改完成后,需从三方面确认生效:
1. 配置项检查:再次执行`kubectl describe node <节点名>`,核对资源限制、IP地址、标签/污点是否与预期一致;
2. Pod状态观察:通过`kubectl get pods --watch`监控Pod是否重新调度(如修改污点后,原Pod可能被驱逐),确保无`Pending`或`CrashLoopBackOff`状态;
3. 性能指标验证:若修改了资源限制,可通过`kubectl top pods`查看Pod实际CPU/内存使用是否符合设置(如限制500m CPU时,占用不应长期超过500m)。
需要注意的是,修改节点配置时尽量选择业务低峰期操作,重要变更建议先在测试集群验证。云服务器的弹性扩展特性(如快速创建备用节点)也能为配置调整提供安全缓冲,降低操作风险。