温馨提示×

centos装k8s要啥环境

小樊
38
2026-10-18 01:24:46
栏目: 智能运维

在 CentOS 上安装 Kubernetes(k8s),一般需要满足以下环境和前提条件(以常见的 kubeadm 方式为例,适用于 CentOS 7 / CentOS 8 Stream)。


一、基础硬件 / 系统要求

  • 操作系统:CentOS 7.x 或 CentOS 8 Stream(推荐 7.9)
  • CPU:至少 2 核(Master 建议 2 核以上)
  • 内存:
    • Master:≥ 2GB
    • Node:≥ 2GB(生产建议 4GB+)
  • 磁盘:≥ 20GB
  • 网络:
    • 节点之间网络互通
    • 可访问外网(拉镜像,或配置私有镜像)

二、系统环境准备(必须)

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/s/^/#/' /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
EOF

6️⃣ 内核参数 & 桥接

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

三、容器运行时(必须)

K8s 需要容器运行时,常用:

  • Docker(旧版常用)
  • containerd(推荐,1.24+ 默认)

containerd 示例

yum install -y containerd
systemctl enable --now containerd

四、安装 Kubernetes 组件

1️⃣ 配置 yum 源

cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
EOF

2️⃣ 安装 kubeadm / kubelet / kubectl

yum install -y kubelet kubeadm kubectl
systemctl enable kubelet

五、初始化集群(Master)

kubeadm init \
  --apiserver-advertise-address=192.168.1.10 \
  --image-repository registry.aliyuncs.com/google_containers \
  --pod-network-cidr=10.244.0.0/16

初始化完成后:

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

六、网络插件(必须)

常用:

  • Flannel
  • Calico

Flannel 示例:

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

七、Node 加入集群

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

八、常见坑提醒 ⚠️

  • CentOS 8 已停止维护,建议用 Stream 或 Rocky/Alma
  • K8s 1.24+ 不再支持 docker shim
  • 时间必须同步(ntp / chrony)
  • 内核版本建议 ≥ 3.10(CentOS 7 默认够用)

如果你告诉我:

  • CentOS 版本
  • K8s 版本
  • 单节点还是多节点
  • 是否离线环境

我可以直接给你一套可复制的执行脚本。

0 踩