温馨提示×

怎么在CentOS跑K8s

小樊
42
2026-08-20 01:54:31
栏目: 智能运维

CentOS 上跑 Kubernetes(K8s) 常见有几种方式,下面给你一个从零到可用集群的实战流程(适合学习 / 测试环境)。如果你只是想单机体验,我也可以给你更简单的方案(如 Minikube / k3s)。


一、环境准备(CentOS 7 / 8 / Stream 通用)

1️⃣ 系统要求

  • CentOS 7 / 8 / Stream
  • 2 核 CPU 以上
  • 内存 ≥ 2GB(建议 4GB+)
  • 磁盘 ≥ 20GB
  • 能联网

2️⃣ 关闭 swap(K8s 强制要求)

swapoff -a
sed -i 's/^\(.*swap.*\)$/#\1/' /etc/fstab

3️⃣ 关闭防火墙

systemctl disable firewalld --now

4️⃣ 关闭 SELinux

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

5️⃣ 设置内核参数(K8s 网络要求)

cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl --system

二、安装容器运行时(Containerd 推荐)

1️⃣ 安装 containerd

yum install -y containerd

2️⃣ 生成默认配置

mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml

3️⃣ 修改配置(SystemdCgroup)

sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml

4️⃣ 启动 containerd

systemctl enable containerd --now

三、安装 Kubernetes(kubeadm)

1️⃣ 配置 K8s yum 源

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

2️⃣ 安装 kubeadm / kubelet / kubectl

yum install -y kubelet kubeadm kubectl
systemctl enable kubelet

四、初始化 Kubernetes 集群(Master 节点)

kubeadm init \
  --pod-network-cidr=10.244.0.0/16 \
  --cri-socket unix:///run/containerd/containerd.sock

✅ 成功后会看到类似:

kubeadm join xxx.xxx.xxx.xxx:6443 --token xxx --discovery-token-ca-cert-hash sha256:xxx

五、配置 kubectl(普通用户)

mkdir -p $HOME/.kube
cp /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

测试:

kubectl get nodes

六、安装网络插件(Flannel 示例)

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

等一会儿:

kubectl get nodes
# STATUS 变成 Ready

七、添加 Worker 节点(可选)

在 worker 节点执行 master 初始化时输出的:

kubeadm join xxx.xxx.xxx.xxx:6443 --token xxx \
  --discovery-token-ca-cert-hash sha256:xxx

八、验证集群

kubectl get pods -A
kubectl get nodes

九、如果你只是想快速体验 K8s

✅ 推荐方案

场景 推荐
学习 k3s / Minikube
单机 k3s(最轻量)
多节点 上面完整方案

k3s 一键安装(强烈推荐)

curl -sfL https://get.k3s.io | sh -
kubectl get node

十、常见问题

  • kubeadm init 卡住 → 检查 swap / 网络 / 防火墙
  • ❌ 节点 NotReady → 网络插件没装
  • ❌ cgroup 报错 → containerd 配置 SystemdCgroup

如果你愿意,我可以:

  • ✅ 给你 CentOS 7 专用命令
  • ✅ 给你 生产级 K8s 安装方案
  • ✅ 给你 kubeadm + 高可用
  • ✅ 帮你 排查报错

你现在用的是 CentOS 几?单机还是多台?

0