温馨提示×

K8s能在CentOS运行吗

小樊
42
2026-07-21 08:47:31
栏目: 智能运维

可以,Kubernetes(K8s)完全可以在 CentOS 上运行,而且这是非常常见和成熟的组合之一。

下面给你一个清晰、实用的说明:


✅ 一、CentOS 对 Kubernetes 的支持情况

1️⃣ 支持的 CentOS 版本

  • CentOS 7(仍可用,但已进入 EOL)
  • CentOS Stream 8 / 9(推荐)
  • ❌ CentOS Linux 8 已于 2021 年 EOL

建议使用 CentOS Stream 9Rocky Linux / AlmaLinux(RHEL 替代品)


✅ 二、K8s 在 CentOS 上的运行方式

常见部署方式

方式 是否推荐 说明
kubeadm ✅ 强烈推荐 官方标准方式
二进制手动部署 ⚠️ 高级 学习原理用
minikube 本地单机测试
k3s / kind 轻量 / CI 环境

✅ 三、在 CentOS 上安装 K8s(简要流程)

CentOS Stream 9 + kubeadm 为例:

1️⃣ 系统准备

# 关闭防火墙
systemctl disable firewalld --now

# 关闭 SELinux
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

# 禁用 swap
swapoff -a
sed -i '/swap/d' /etc/fstab

2️⃣ 安装容器运行时(containerd)

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

3️⃣ 安装 kubeadm / kubelet / kubectl

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

4️⃣ 初始化集群(Master 节点)

kubeadm init --pod-network-cidr=10.244.0.0/16

然后配置 kubectl:

mkdir -p $HOME/.kube
cp /etc/kubernetes/admin.conf $HOME/.kube/config

5️⃣ 安装网络插件(如 Flannel)

kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

✅ 四、注意事项(非常重要)

⚠️ CentOS 的特殊点

  1. CentOS 7 内核较老
    • 建议升级内核(≥ 4.19)
  2. SELinux 默认开启
    • K8s 建议关闭或配置正确策略
  3. swap 必须关闭
    • kubelet 默认不允许 swap

✅ 五、生产环境建议

项目 建议
OS Rocky Linux / AlmaLinux / CentOS Stream
容器运行时 containerd
网络插件 Calico / Cilium
管理方式 kubeadm / Rancher

✅ 总结一句话

Kubernetes 可以在 CentOS 上稳定运行,生产环境完全可行,但建议使用 CentOS Stream 或 RHEL 衍生发行版。

如果你愿意,我可以:

  • 给你 完整的一键安装脚本
  • 帮你 对比 CentOS vs Ubuntu 跑 K8s
  • 或根据你的 服务器数量 / 用途 设计集群方案

0