在 CentOS 上部署 Kubernetes(K8s)主要有两种常见方式:
下面我重点讲 最常用、最实用的方式:kubeadm 在 CentOS 7/8 上部署 Kubernetes 集群。
systemctl disable firewalld --now
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
swapoff -a
sed -i '/swap/d' /etc/fstab
hostnamectl set-hostname master
# 或 node1、node2
cat >> /etc/hosts <<EOF
192.168.1.10 master
192.168.1.11 node1
192.168.1.12 node2
EOF
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y containerd.io
mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml
修改:
SystemdCgroup = true
systemctl enable containerd --now
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/repodata/repomd.xml.key
EOF
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet
kubeadm init \
--pod-network-cidr=10.244.0.0/16 \
--cri-socket unix:///run/containerd/containerd.sock
✅ 成功后会看到:
kubeadm join 192.168.1.10:6443 --token xxxx --discovery-token-ca-cert-hash sha256:xxxx
mkdir -p $HOME/.kube
cp /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
验证:
kubectl get nodes
kubectl get pods -A
在 node 节点执行:
kubeadm join 192.168.1.10:6443 \
--token xxxx \
--discovery-token-ca-cert-hash sha256:xxxx
kubectl get nodes
kubectl get pods -A
✅ 检查:
✅ 没装 CNI 网络插件
| 场景 | 推荐 |
|---|---|
| 学习 | Minikube |
| 快速部署 | kubeadm |
| 生产 | kubeadm + HA |
| 离线 | 二进制 / Rancher |
你可以直接告诉我:
我可以给你 一步一步的完整命令版 或 生产级高可用方案。