一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Linux 服务器搭建如何部署 Kubernetes 集群

时间:2026-08-18 20:19:49 编辑:袖梨 来源:一聚教程网

Kubernetes集群部署核心是系统级预检与containerd运行时统一配置:关闭swap并持久化、加载br_netfilter等内核模块、启用桥接流量与IP转发、设置唯一主机名及时间同步,再安装版本严格对齐的kubeadm/kubelet/kubectl,最后用kubeadm init初始化并部署Calico网络插件。

在 Linux 服务器上部署 Kubernetes 集群,核心是构建一个稳定、可扩展、生产就绪的控制平面与工作节点协同环境。不推荐用 Docker 作为运行时(K8s 自 v1.24 起已弃用 dockershim),也不建议跳过系统预检直接 init——90% 的集群启动失败都源于基础配置偏差。

系统级准备必须到位

所有节点(Master 和 Node)需同步完成以下操作:

  1. 关闭 swap:执行 sudo swapoff -a,并注释 /etc/fstab 中含 swap 的行
  2. 加载必要内核模块:写入 /etc/modules-load.d/k8s.conf,包含 br_netfilterip_vsnf_conntrack
  3. 启用桥接流量:在 /etc/sysctl.d/k8s.conf 中设置 net.bridge.bridge-nf-call-iptables = 1net.ipv4.ip_forward = 1,再运行 sudo sysctl --system
  4. 确认主机名符合规范(小写字母、数字、短横线、点号组合,不以点结尾),且各节点 product_uuid 和网卡 MAC 地址 唯一
  5. 时间同步:所有节点启用 chronyntpd,确保误差小于 1 秒

容器运行时统一用 containerd

这是当前生产环境最稳妥的选择:

  1. Ubuntu:运行 sudo apt-get install -y containerd;RHEL/CentOS/Rocky:用 sudo dnf install -y containerd.io
  2. 生成默认配置:sudo containerd config default | sudo tee /etc/containerd/config.toml
  3. 编辑该文件,将 SystemdCgroup = false 改为 true
  4. 重启服务:sudo systemctl restart containerd && sudo systemctl enable containerd

kubeadm/kubelet/kubectl 版本必须严格对齐

三个组件小版本号必须完全一致(如 v1.28.12),否则节点无法 join 或 control plane 启动异常:

  1. 添加最新源(以 Ubuntu 为例):curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/kubernetes-archive-keyring.gpg,再配置源地址
  2. 安装并锁定版本:sudo apt-get install -y kubelet=1.28.12-00 kubeadm=1.28.12-00 kubectl=1.28.12-00,然后 sudo apt-mark hold kubelet kubeadm kubectl
  3. 确保 kubelet 服务已启用:sudo systemctl enable --now kubelet

初始化控制平面并加入节点

在 Master 节点执行:

  1. sudo kubeadm init --kubernetes-version=v1.28.12 --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=<master-ip>
  2. 按提示配置 ~/.kube/config,使 kubectl 可用
  3. 部署 Calico 网络插件:kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
  4. 在每个 Worker 节点运行 init 输出的 kubeadm join 命令(带 token 和 ca-cert-hash)
  5. 验证:kubectl get nodes -o wide,状态应为 Ready

不复杂但容易忽略

热门栏目