ubuntu

Ubuntu上Kubernetes的节点管理技巧

小樊
42
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),提升应用容灾能力。

五、最佳实践总结

参考来源:

0
看了该问题的人还看了