温馨提示×

centos k8s部署需要啥配置

小樊
47
2026-07-09 13:32:52
栏目: 智能运维

CentOS 上部署 Kubernetes(k8s) 时,配置要求取决于你部署的是 单节点(测试) 还是 多节点集群(生产)。下面我按 生产/常用标准 给你一个完整清单,并标注最低和推荐配置。


一、服务器硬件配置

1️⃣ 最低配置(仅测试 / 学习)

角色 CPU 内存 磁盘
Master 2 核 2 GB 20 GB
Node 2 核 2 GB 20 GB

⚠️ 注意

  • 官方要求 Master ≥ 2 核
  • 内存太少会导致 kubelet / kube-apiserver 起不来

2️⃣ 推荐生产配置

角色 CPU 内存 磁盘
Master(控制平面) 4 核+ 8 GB+ 100 GB+ SSD
Node(工作节点) 4 核+ 8 GB+ 100 GB+ SSD

✅ 生产环境建议:

  • 至少 3 个 Master(高可用)
  • Node 数量越多越好

二、操作系统配置(CentOS)

✅ 推荐版本

  • CentOS 7.9
  • CentOS Stream 8 / 9(新环境)

⚠️ CentOS 7 已接近 EOL,建议新集群用 Stream 8/9 或 Rocky / AlmaLinux


三、系统基础环境配置(必须)

1️⃣ 关闭防火墙

systemctl disable firewalld
systemctl stop firewalld

2️⃣ 关闭 SELinux

setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

3️⃣ 关闭 swap(k8s 强制要求)

swapoff -a
sed -i '/swap/d' /etc/fstab

4️⃣ 设置主机名 & hosts

hostnamectl set-hostname master01
cat >> /etc/hosts <<EOF
192.168.1.10 master01
192.168.1.11 node01
192.168.1.12 node02
EOF

5️⃣ 内核参数(非常重要)

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

6️⃣ 加载 br_netfilter 模块

modprobe br_netfilter
echo "br_netfilter" >> /etc/modules-load.d/k8s.conf

四、容器运行时(必须)

Kubernetes 不再支持 docker(1.24+),必须选:

✅ 推荐:containerd(主流)

yum install -y containerd
containerd config default > /etc/containerd/config.toml
systemctl enable --now containerd

五、Kubernetes 软件配置

1️⃣ 添加 k8s yum 源

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

2️⃣ 安装 kubeadm / kubelet / kubectl

yum install -y kubelet kubeadm kubectl
systemctl enable kubelet

六、初始化 Master 节点

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

七、安装网络插件(CNI)

✅ Flannel(最常见)

kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml

八、Node 加入集群

kubeadm join 192.168.1.10:6443 \
  --token xxxx \
  --discovery-token-ca-cert-hash sha256:xxxx

九、常见部署方式对比

方式 适合
kubeadm ✅ 生产 / 学习
二进制 高级定制
minikube 本地测试
Rancher 快速管理

十、总结一句话

CentOS 部署 k8s 核心要求:

  • ✅ 关闭 swap / SELinux / firewalld
  • ✅ 内核参数正确
  • ✅ containerd
  • ✅ kubeadm
  • ✅ 网络插件(Flannel / Calico)

如果你愿意,我可以:

  • ✅ 给你 一键部署脚本
  • ✅ 做 生产高可用方案
  • ✅ 对比 CentOS vs Rocky vs Ubuntu

你现在是要 学习 / 测试 / 生产 哪种?

0