温馨提示×

CentOS怎么安装Kubernetes

小樊
44
2026-08-20 00:46:28
栏目: 智能运维

下面给你一份在 CentOS 上安装 Kubernetes(k8s)通用、稳定、生产可用流程,适用于 CentOS 7 / CentOS 8 Stream,以 kubeadm 方式安装(官方推荐)。


一、环境准备

1️⃣ 机器要求

  • 至少 2 台机器(1 master + 1 node)
  • 每台机器:
    • CPU ≥ 2 核
    • 内存 ≥ 2GB
    • 网络互通
  • 操作系统:CentOS 7 / 8 Stream

二、系统初始化(所有节点都要做)

1️⃣ 关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

2️⃣ 关闭 SELinux

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

3️⃣ 关闭 swap

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

4️⃣ 设置主机名(每台机器不同)

hostnamectl set-hostname master
# node 节点
hostnamectl set-hostname node1

5️⃣ 配置 hosts(可选但推荐)

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

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

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

1️⃣ 安装依赖

yum install -y yum-utils device-mapper-persistent-data lvm2

2️⃣ 添加 Docker 仓库

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

3️⃣ 安装 containerd

yum install -y containerd.io

4️⃣ 生成配置并启动

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

修改:

SystemdCgroup = true
systemctl enable containerd
systemctl start containerd

四、安装 Kubernetes(kubeadm、kubelet、kubectl)

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

可替换 v1.29 为你需要的版本


2️⃣ 安装组件

yum install -y kubelet kubeadm kubectl
systemctl enable kubelet

五、初始化 Master 节点(仅 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 xxx --discovery-token-ca-cert-hash sha256:xxx

3️⃣ 配置 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 pods -n kube-system

七、Node 节点加入集群

node 节点执行 master 输出的 join 命令

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

八、验证集群

kubectl get nodes

输出示例:

NAME     STATUS   ROLES    AGE   VERSION
master   Ready    master   5m    v1.29.0
node1    Ready    <none>   3m    v1.29.0

九、常见问题

❌ node 一直 NotReady

  • 网络插件未安装
  • containerd 未启动
  • cgroup 配置错误

❌ kubectl 命令不可用

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bashrc
source ~/.bashrc

十、可选进阶

  • 安装 Dashboard
  • 使用 Calico 替代 Flannel
  • 配置 高可用 Master
  • 离线安装 Kubernetes

如果你愿意,可以告诉我:

  • ✅ CentOS 版本
  • ✅ 单节点 / 多节点
  • ✅ 是否内网 / 离线环境

我可以给你定制版安装方案

0