温馨提示×

怎样在CentOS用K8s

小樊
33
2026-08-31 01:03:33
栏目: 智能运维

在 CentOS 上部署 Kubernetes(K8s)主要有两种常见方式:

  1. 使用 kubeadm(官方推荐,生产可用)
  2. 使用二进制安装(复杂,适合深入理解)

下面我重点讲 最常用、最实用的方式:kubeadm 在 CentOS 7/8 上部署 Kubernetes 集群


一、环境准备(所有节点)

1️⃣ 系统要求

  • CentOS 7 或 CentOS 8
  • 2 个 CPU 及以上
  • 内存 ≥ 2GB
  • 能访问互联网(或私有镜像仓库)

2️⃣ 关闭防火墙和 SELinux

systemctl disable firewalld --now
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

3️⃣ 关闭 swap

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

4️⃣ 设置主机名

hostnamectl set-hostname master
# 或 node1、node2

5️⃣ 配置 hosts(可选)

cat >> /etc/hosts <<EOF
192.168.1.10 master
192.168.1.11 node1
192.168.1.12 node2
EOF

二、安装容器运行时(Docker / containerd)

✅ 推荐:containerd(K8s 官方推荐)

安装 containerd

yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

yum install -y containerd.io

配置 containerd

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

修改:

SystemdCgroup = true
systemctl enable containerd --now

三、安装 Kubernetes(所有节点)

1️⃣ 配置 Kubernetes 源

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

四、初始化 Master 节点

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

✅ 成功后会看到:

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

配置 kubectl

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

验证:

kubectl get nodes
kubectl get pods -A

六、加入 Worker 节点

在 node 节点执行:

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

七、验证集群

kubectl get nodes
kubectl get pods -A

八、常见问题

❌ 1. kubeadm init 卡住

✅ 检查:

  • swap 是否关闭
  • containerd 是否运行
  • 网络是否通畅

❌ 2. coredns 一直 Pending

✅ 没装 CNI 网络插件


九、如果你想更省事

场景 推荐
学习 Minikube
快速部署 kubeadm
生产 kubeadm + HA
离线 二进制 / Rancher

十、我可以继续帮你

你可以直接告诉我:

  • ✅ CentOS 7 还是 8?
  • ✅ 单节点还是多节点?
  • ✅ 是否离线环境?
  • ✅ 是否要部署 Dashboard?

我可以给你 一步一步的完整命令版生产级高可用方案

0