温馨提示×

centos部署k8s要配置什么

小樊
41
2026-07-21 08:02:39
栏目: 智能运维

CentOS 上部署 Kubernetes(k8s) 之前,需要完成一系列 系统、网络、内核、容器运行时 的准备和配置。下面按 部署前 → 部署中 → 网络/组件 来系统说明。


一、CentOS 系统基础配置(必须)

1️⃣ 系统版本建议

  • CentOS 7.9 / CentOS Stream 8 / 9
  • 内核建议 ≥ 4.19
  • 生产环境推荐 CentOS Stream 8/9
cat /etc/centos-release
uname -r

2️⃣ 关闭防火墙(或放行端口)

systemctl disable firewalld --now

或放行 k8s 所需端口(6443、10250 等)


3️⃣ 关闭 SELinux

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

4️⃣ 关闭 swap(非常重要)

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

验证:

free -m

5️⃣ 设置主机名和 hosts

hostnamectl set-hostname master01
cat >> /etc/hosts <<EOF
192.168.1.10 master01
192.168.1.11 node01
EOF

6️⃣ 时间同步(NTP)

yum install -y chrony
systemctl enable chronyd --now

二、内核与网络参数(必须)

1️⃣ 加载内核模块

modprobe br_netfilter
modprobe overlay

开机自动加载:

cat > /etc/modules-load.d/k8s.conf <<EOF
br_netfilter
overlay
EOF

2️⃣ 内核参数

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

sysctl --system

三、安装容器运行时(二选一)

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

1️⃣ 安装 containerd

yum install -y containerd.io
mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml

修改:

SystemdCgroup = true
systemctl enable containerd --now

或:Docker(不推荐新集群)

yum install -y docker-ce docker-ce-cli
systemctl enable docker --now

四、安装 Kubernetes 组件

1️⃣ 配置 k8s yum 源

cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/repodata/repomd.xml.key
EOF

2️⃣ 安装 kubeadm / kubelet / kubectl

yum install -y kubelet kubeadm kubectl
systemctl enable kubelet

五、初始化 Kubernetes 集群(Master)

1️⃣ 初始化

kubeadm init \
  --pod-network-cidr=10.244.0.0/16 \
  --apiserver-advertise-address=192.168.1.10

成功后:

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

2️⃣ 添加 Node 节点

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

六、安装网络插件(必须)

✅ Flannel(最简单)

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

或 Calico

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

七、常见必须配置总结表

配置项 是否必须
关闭 swap
关闭 SELinux
内核参数
容器运行时
网络插件
时间同步
hosts 解析

八、常见坑(非常重要)

❌ swap 没关 → kubelet 起不来
❌ SELinux 没关 → pod 起不来
❌ 内核参数没配 → 网络不通
❌ containerd SystemdCgroup=false → 报错


九、我可以继续帮你

你可以直接告诉我:

  • CentOS 版本
  • 单节点 / 多节点
  • 生产 / 测试
  • 是否离线部署

我可以给你 完整可复制的一键部署脚本

0