温馨提示×

Debian K8s如何备节点

小樊
40
2026-09-20 14:21:18
栏目: 智能运维

你这里的「备节点」通常指 Kubernetes 集群中的 Worker 节点(工作节点)加入已有集群,或者是指 高可用架构中的备 Master 节点。下面我分两种情况说明,在 Debian 上如何做。


一、Debian 上添加 K8s 工作节点(最常见)

1. 在所有节点准备环境(主节点 + 备节点)

# 关闭 swap
swapoff -a
sed -i '/ swap / s/^/#/' /etc/fstab

# 加载内核模块
cat <<EOF | tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
modprobe br_netfilter

# 内核参数
cat <<EOF | tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

2. 安装容器运行时(containerd 示例)

apt update
apt install -y containerd

配置 containerd:

mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml
systemctl restart containerd
systemctl enable containerd

3. 安装 kubeadm / kubelet / kubectl

apt install -y apt-transport-https ca-certificates curl
curl -fsSL https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF

apt update
apt install -y kubelet kubeadm kubectl
systemctl enable kubelet

4. 在 Master 节点生成加入命令

kubeadm token create --print-join-command

输出类似:

kubeadm join 192.168.1.10:6443 \
  --token xxxx \
  --discovery-token-ca-cert-hash sha256:xxxx

5. 在备节点(工作节点)执行

kubeadm join 192.168.1.10:6443 \
  --token xxxx \
  --discovery-token-ca-cert-hash sha256:xxxx

6. 在 Master 验证

kubectl get nodes

看到新节点为 Ready 即成功。


二、Debian 上添加「备 Master 节点」(高可用)

如果是 多 Master 高可用架构,还需要:

1. 提前准备

  • 负载均衡(HAProxy / Keepalived)
  • 共享 etcd 或堆叠 etcd

2. 在主 Master 生成证书与命令

kubeadm init phase upload-certs --upload-certs
kubeadm token create --print-join-command

3. 在备 Master 执行

kubeadm join <VIP>:6443 \
  --token xxx \
  --discovery-token-ca-cert-hash sha256:xxx \
  --control-plane \
  --certificate-key xxx

三、常见问题

  • 节点 NotReady
    → 检查 CNI(Calico / Flannel)是否安装

  • swap 未关闭
    → kubelet 会启动失败

  • 时间不同步
    → 安装 chronyntp


如果你能说明:

  • Worker 节点 还是 备 Master
  • K8s 版本
  • 是否使用 kubeadm

我可以给你更精确的命令。

0