阅读量:2
以下是Ubuntu上Kubernetes节点管理的实用技巧,涵盖基础操作与优化实践:
一、节点基础管理
-
节点状态维护
- 驱逐Pod:维护前使用
kubectl drain驱逐节点上的Pod,避免服务中断。 - 设置不可调度:通过
kubectl cordon标记节点为不可调度,防止新Pod调度到该节点。 - 恢复节点:维护完成后,使用
kubectl uncordon恢复节点调度状态。
- 驱逐Pod:维护前使用
-
节点加入与移除
- 加入节点:在目标节点执行
kubeadm join,需提前在Master节点生成join命令。: --token - 移除节点:在Master节点使用
kubectl delete node,并确保节点已正确清理。
- 加入节点:在目标节点执行
二、系统配置优化
-
基础环境设置
- 关闭Swap:执行
sudo swapoff -a并注释/etc/fstab中的Swap配置,避免影响Kubernetes性能。 - 配置内核参数:添加网桥转发规则,执行
echo "net.bridge.bridge-nf-call-iptables=1" > /etc/sysctl.d/k8s.conf并执行sysctl --system。 - 时间同步:安装
chrony或ntp确保节点时间一致,避免因时间差导致集群异常。
- 关闭Swap:执行
-
网络插件配置
- 推荐使用Calico或Flannel,通过
kubectl apply -f <插件YAML>安装,例如Calico:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml。
- 推荐使用Calico或Flannel,通过
三、节点维护与监控
-
安全加固
- 禁用非必要服务:关闭SSH密码登录,仅允许密钥认证,减少入侵风险。
- 限制节点访问:通过防火墙规则(如
ufw)限制节点间通信端口,仅开放Kubernetes必要端口。
-
监控与日志
- 基础监控:使用
kubectl top nodes查看节点资源使用情况,结合Prometheus+Grafana实现可视化监控。 - 日志管理:部署ELK Stack或Loki收集节点及Pod日志,便于故障排查。
- 基础监控:使用
四、自动化与高级管理
-
自动化部署
- 使用Ansible、Terraform等工具批量配置Ubuntu节点,实现节点初始化、组件安装的自动化。
- 通过Kubeadm的
kubeadm config命令生成配置文件,复用集群配置,减少人工操作。
-
高可用方案
- 部署多Master节点并搭配负载均衡器(如HAProxy),避免单点故障。
- 启用Pod反亲和性(Anti-Affinity)和节点亲和性(Affinity),提升应用容灾能力。
五、最佳实践总结
- 版本管理:使用Ubuntu LTS版本(如22.04/24.04),确保系统长期支持。
- 最小化权限:遵循最小权限原则,通过ServiceAccount和RBAC限制节点权限。
- 文档化流程:记录节点维护、升级步骤,便于团队协作与故障复盘。
参考来源:
以上就是关于“Ubuntu上Kubernetes的节点管理技巧”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm