kubeadm 部署 K8s 的标准配置方式(完整流程)
kubeadm 部署遵循 K8s 官方最佳实践,核心分前置准备、初始化 Master、加入 Node、验证集群四步,结合你的环境(Containerd 运行时)给出实操步骤: 前置条件(所有节点都要做)
# 1. 关闭防火墙/SELinux/swap
systemctl stop firewalld && systemctl disable firewalld
setenforce 0 && sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
swapoff -a && sed -i '/swap/s/^/#/' /etc/fstab
# 2. 配置内核参数(开启IPVS/桥接模式)
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sysctl --system
# 3. 安装容器运行时(你的集群是Containerd)
apt install -y containerd
containerd config default > /etc/containerd/config.toml
sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/' /etc/containerd/config.toml # 关键:开启systemd cgroup
systemctl restart containerd && systemctl enable containerd
# 4. 安装kubeadm/kubelet/kubectl(K8s核心组件)
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 > /etc/apt/sources.list.d/kubernetes.list << EOF
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
apt update && apt install -y kubelet=1.28.0-00 kubeadm=1.28.0-00 kubectl=1.28.0-00
apt-mark hold kubelet kubeadm kubectl # 锁定版本,防止自动升级步骤 1:初始化 Master 节点(核心) 这一步是 kubeadm 部署的核心,会自动生成控制平面组件(apiserver/controller-manager/scheduler)、证书、kubelet 配置:
# 初始化Master(指定Pod网段、Service网段、镜像仓库,适配国内网络)
kubeadm init \
--kubernetes-version=v1.28.0 \
--pod-network-cidr=10.244.0.0/16 \ # 用于CNI网络插件(如flannel/calico)
--service-cidr=10.96.0.0/12 \
--image-repository=registry.aliyuncs.com/google_containers \ # 国内镜像源,避免拉取失败
--cri-socket=unix:///run/containerd/containerd.sock # 指定Containerd套接字(你的集群就是这个)
# 初始化成功后,会输出两个关键信息:
# 1. 配置kubectl的命令(让当前用户能操作集群)
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
# 2. Node节点加入集群的命令(类似:kubeadm join 10.0.0.1:6443 --token xxx --discovery-token-ca-cert-hash sha256:xxx)步骤 2:部署 CNI 网络插件(必须,否则 Pod 无法通信) kubeadm 不会自动部署网络插件,需要手动安装(以 flannel 为例):
kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/v0.22.0/Documentation/kube-flannel.yml步骤 3:Node 节点加入集群 在 Node 节点执行 Master 初始化成功后输出的kubeadm join命令:
kubeadm join 10.0.0.1:6443 \
--token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx步骤 4:验证集群部署成功
# 查看节点状态(Ready表示正常)
kubectl get nodes
# 查看控制平面组件(都是Running状态)
kubectl get pods -n kube-system
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
楚少爱看雪!
喜欢就支持一下吧