在 CentOS 上部署 Kubernetes(k8s) 时,配置要求取决于你部署的是 单节点(测试) 还是 多节点集群(生产)。下面我按 生产/常用标准 给你一个完整清单,并标注最低和推荐配置。
| 角色 | CPU | 内存 | 磁盘 |
|---|---|---|---|
| Master | 2 核 | 2 GB | 20 GB |
| Node | 2 核 | 2 GB | 20 GB |
⚠️ 注意:
| 角色 | CPU | 内存 | 磁盘 |
|---|---|---|---|
| Master(控制平面) | 4 核+ | 8 GB+ | 100 GB+ SSD |
| Node(工作节点) | 4 核+ | 8 GB+ | 100 GB+ SSD |
✅ 生产环境建议:
⚠️ CentOS 7 已接近 EOL,建议新集群用 Stream 8/9 或 Rocky / AlmaLinux
systemctl disable firewalld
systemctl stop firewalld
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
swapoff -a
sed -i '/swap/d' /etc/fstab
hostnamectl set-hostname master01
cat >> /etc/hosts <<EOF
192.168.1.10 master01
192.168.1.11 node01
192.168.1.12 node02
EOF
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
modprobe br_netfilter
echo "br_netfilter" >> /etc/modules-load.d/k8s.conf
Kubernetes 不再支持 docker(1.24+),必须选:
yum install -y containerd
containerd config default > /etc/containerd/config.toml
systemctl enable --now containerd
cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.28/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 \
--apiserver-advertise-address=192.168.1.10
初始化完成后:
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
kubeadm join 192.168.1.10:6443 \
--token xxxx \
--discovery-token-ca-cert-hash sha256:xxxx
| 方式 | 适合 |
|---|---|
| kubeadm | ✅ 生产 / 学习 |
| 二进制 | 高级定制 |
| minikube | 本地测试 |
| Rancher | 快速管理 |
✅ CentOS 部署 k8s 核心要求:
如果你愿意,我可以:
你现在是要 学习 / 测试 / 生产 哪种?