首页主机资讯Debian上K8s节点如何添加

Debian上K8s节点如何添加

时间2025-11-27 19:30:03发布访客分类主机资讯浏览1379
导读:在 Debian 上添加 Kubernetes 节点的标准流程 按如下步骤在 Debian 主机上准备并加入 Kubernetes 集群,涵盖系统前置、容器运行时、kubeadm 加入与验证。 一 前置条件与系统准备 硬件建议:每个节点...

在 Debian 上添加 Kubernetes 节点的标准流程

按如下步骤在 Debian 主机上准备并加入 Kubernetes 集群,涵盖系统前置、容器运行时、kubeadm 加入与验证。


一 前置条件与系统准备

  • 硬件建议:每个节点至少 2 核 CPU、2GB 内存、20GB 磁盘
  • 主机名与解析:为各节点设置唯一 hostname,并在所有节点的 /etc/hosts 中写入相互解析条目(示例:10.0.0.100 k8s-master;10.0.0.101 k8s-node1)。
  • 关闭 Swap:
    • 临时:sudo swapoff -a
    • 永久:sudo sed -i ‘/ swap / s/^(.*)$/#\1/g’ /etc/fstab
  • 内核与转发:
    • 加载模块:
      • sudo modprobe overlay
      • sudo modprobe br_netfilter
    • 开启转发与桥接调用:
      • echo -e “net.bridge.bridge-nf-call-iptables = 1\nnet.ipv4.ip_forward = 1” | sudo tee /etc/sysctl.d/99-kubernetes.conf
      • sudo sysctl --system
  • 防火墙放行(如使用 UFW):
    • sudo ufw allow 6443/tcp
    • sudo ufw allow 2379:2380/tcp
    • sudo ufw allow 10250/tcp
    • sudo ufw allow 10251/tcp
    • sudo ufw allow 10252/tcp
    • sudo ufw allow 10255/tcp
    • sudo ufw reload
  • 容器运行时(推荐 containerd):
    • 安装:sudo apt-get update & & sudo apt-get install -y containerd.io
    • 启用并启动:sudo systemctl enable --now containerd
  • 可选内核模块(IPVS 场景):
    • echo -e “overlay\nbr_netfilter” | sudo tee /etc/modules-load.d/containerd.conf
    • 注:IPVS 为可选,仅在需要 L4 负载均衡优化时启用。

二 安装 kubelet kubeadm kubectl

  • 添加 Kubernetes APT 源并安装组件:
    • curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
    • echo “deb https://apt.kubernetes.io/ kubernetes-xenial main” | sudo tee /etc/apt/sources.list.d/kubernetes.list
    • sudo apt-get update
    • sudo apt-get install -y kubelet kubeadm kubectl
    • sudo apt-mark hold kubelet kubeadm kubectl(防止被系统升级干扰)
  • 启动 kubelet:
    • sudo systemctl enable --now kubelet

三 获取加入命令并加入集群

  • 控制平面节点 生成并打印加入命令:
    • kubeadm token create --print-join-command
    • 典型输出:kubeadm join :6443 --token --discovery-token-ca-cert-hash sha256:
  • 工作节点 执行上一步输出的 join 命令(需要 root 或 sudo):
    • sudo kubeadm join :6443 --token --discovery-token-ca-cert-hash sha256:
  • 如 token 即将过期或需要长期可用,可在控制平面重建:
    • kubeadm token create --ttl 0 --print-join-command
  • 加入完成后在控制平面验证:
    • kubectl get nodes(新节点状态应为 Ready

四 常见问题与快速排查

  • 节点 NotReady:
    • 检查容器运行时:sudo systemctl status containerd
    • 查看 kubelet 日志:sudo journalctl -u kubelet -f
    • 确认内核参数与模块已加载(overlay、br_netfilter、ip_forward)。
  • 加入命令不可用或过期:
    • 在控制平面重新生成:kubeadm token create --print-join-command。
  • 端口或防火墙问题:
    • 确认 6443/2379-2380/10250-10252/10255 已放行,云厂商安全组同样需要放通。
  • 主机名解析失败:
    • 核对 /etc/hosts 在所有节点一致且可相互解析。
  • 已有节点需维护下线:
    • 驱逐:kubectl drain --ignore-daemonsets --delete-emptydir-data
    • 标记不可调度:kubectl cordon
    • 从集群移除:kubectl delete node

五 可选网络插件与后续步骤

  • 若集群尚未安装 CNI 网络插件,加入节点后 Pod 仍会处于 NotReady
  • Calico 为例:
    • kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
    • 等待 kube-system 命名空间下 Calico 相关 Pod 就绪后,再次执行 kubectl get nodes,节点应转为 Ready

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


若转载请注明出处: Debian上K8s节点如何添加
本文地址: https://pptw.com/jishu/758192.html
如何在Debian上更新K8s 如何在Debian上实现Laravel API接口

游客 回复需填写必要信息