温馨提示×

centos k8s节点如何加入

小樊
40
2026-09-12 06:44:26
栏目: 智能运维

在 CentOS 上把节点加入 Kubernetes(k8s)集群,通常有以下几种场景。下面以 kubeadm 方式(最常见)为例说明。


一、前置条件(所有节点都要做)

1. 系统准备

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

# 关闭 SELinux
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

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

2. 配置内核参数

cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl --system

3. 安装容器运行时(以 containerd 为例)

yum install -y containerd
systemctl enable --now containerd

4. 安装 kubeadm / kubelet / kubectl

cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

yum install -y kubelet kubeadm kubectl
systemctl enable kubelet

二、Master 节点生成加入命令

在 已存在的 Master 节点 上执行:

kubeadm token create --print-join-command

输出类似:

kubeadm join 192.168.1.10:6443 \
  --token abcdef.0123456789abcdef \
  --discovery-token-ca-cert-hash sha256:xxxxxx

如果 token 已过期,可重新生成


三、CentOS 节点加入集群

在 新节点(CentOS) 上执行 Master 输出的命令:

kubeadm join 192.168.1.10:6443 \
  --token abcdef.0123456789abcdef \
  --discovery-token-ca-cert-hash sha256:xxxxxx

四、验证节点状态

在 Master 上执行:

kubectl get nodes

节点状态从 NotReady → Ready(需安装 CNI 网络插件,如 Calico / Flannel)


五、常见问题

1. 节点一直是 NotReady

✅ 未安装网络插件

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

2. 提示 swap 未关闭

swapoff -a

3. 端口不通

确保 Master 的 6443 端口可达


六、如果是高可用集群(多 Master)

join 命令中需指定 --control-plane(仅控制平面节点)


如果你目前是:

  • 已有 k8s 集群
  • 使用 kubeadm / 二进制 / Rancher / K3s
  • CentOS 7 或 8

可以告诉我具体环境,我可以给你更精确的步骤。

0 踩