温馨提示×

Ubuntu上Kubernetes的节点管理技巧

小樊
43
2025-08-23 21:17:41
栏目: 智能运维

以下是Ubuntu上Kubernetes节点管理的实用技巧,涵盖基础操作与优化实践:

一、节点基础管理

  1. 节点状态维护

    • 驱逐Pod:维护前使用 kubectl drain <node-name> 驱逐节点上的Pod,避免服务中断。
    • 设置不可调度:通过 kubectl cordon <node-name> 标记节点为不可调度,防止新Pod调度到该节点。
    • 恢复节点:维护完成后,使用 kubectl uncordon <node-name> 恢复节点调度状态。
  2. 节点加入与移除

    • 加入节点:在目标节点执行 kubeadm join <master-ip>:<port> --token <token>,需提前在Master节点生成join命令。
    • 移除节点:在Master节点使用 kubectl delete node <node-name>,并确保节点已正确清理。

二、系统配置优化

  1. 基础环境设置

    • 关闭Swap:执行 sudo swapoff -a 并注释 /etc/fstab 中的Swap配置,避免影响Kubernetes性能。
    • 配置内核参数:添加网桥转发规则,执行 echo "net.bridge.bridge-nf-call-iptables=1" > /etc/sysctl.d/k8s.conf 并执行 sysctl --system
    • 时间同步:安装 chronyntp 确保节点时间一致,避免因时间差导致集群异常。
  2. 网络插件配置

    • 推荐使用Calico或Flannel,通过 kubectl apply -f <插件YAML> 安装,例如Calico:
      kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

三、节点维护与监控

  1. 安全加固

    • 禁用非必要服务:关闭SSH密码登录,仅允许密钥认证,减少入侵风险。
    • 限制节点访问:通过防火墙规则(如ufw)限制节点间通信端口,仅开放Kubernetes必要端口。
  2. 监控与日志

    • 基础监控:使用 kubectl top nodes 查看节点资源使用情况,结合Prometheus+Grafana实现可视化监控。
    • 日志管理:部署ELK Stack或Loki收集节点及Pod日志,便于故障排查。

四、自动化与高级管理

  1. 自动化部署

    • 使用Ansible、Terraform等工具批量配置Ubuntu节点,实现节点初始化、组件安装的自动化。
    • 通过Kubeadm的kubeadm config命令生成配置文件,复用集群配置,减少人工操作。
  2. 高可用方案

    • 部署多Master节点并搭配负载均衡器(如HAProxy),避免单点故障。
    • 启用Pod反亲和性(Anti-Affinity)和节点亲和性(Affinity),提升应用容灾能力。

五、最佳实践总结

  • 版本管理:使用Ubuntu LTS版本(如22.04/24.04),确保系统长期支持。
  • 最小化权限:遵循最小权限原则,通过ServiceAccount和RBAC限制节点权限。
  • 文档化流程:记录节点维护、升级步骤,便于团队协作与故障复盘。

参考来源:

0