在 CentOS 上部署 Kubernetes(k8s),通常需要准备系统环境 + 容器运行时 + k8s 核心组件。下面按必须和可选给你列清楚,并附带常见版本建议。
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
modprobe br_netfilter
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
yum install -y containerd
systemctl enable --now containerd
yum install -y docker
systemctl enable --now docker
⚠ Kubernetes 1.24+ 已移除 dockershim,Docker 需配合
cri-dockerd
yum install -y cri-o
cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[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
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
kubeadm join <master-ip>:6443 --token xxx --discovery-token-ca-cert-hash xxx
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
| 组件 | 作用 |
|---|---|
| Helm | 包管理 |
| Metrics Server | 资源监控 |
| Ingress Nginx | 外部访问 |
| Dashboard | Web UI |
| HAProxy / Keepalived | 高可用 |
✅ 必须装:
❌ 不用装:
如果你愿意,我可以:
你现在是 学习 还是 生产部署?