温馨提示×

centos部署k8s注意什么

小樊
48
2026-09-18 11:58:44
栏目: 智能运维

CentOS 上部署 Kubernetes(k8s) 时,有很多“坑”是生产环境必须注意的。下面从 系统准备、安装方式、网络、存储、安全、运维 几个维度总结关键注意事项。


一、CentOS 版本与系统准备(非常重要)

1. CentOS 版本选择

  • 推荐:CentOS 7.9 / CentOS Stream 8/9
  • ⚠️ CentOS 8 已 EOL(官方停止维护)
  • ❌ 不建议使用太老版本(如 CentOS 6)

生产环境也可考虑 Rocky Linux / AlmaLinux 替代 CentOS


2. 关闭防火墙或正确放行端口

systemctl stop firewalld
systemctl disable firewalld

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


3. 关闭 SELinux

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

4. 关闭 swap(必须)

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

kubelet 默认不允许使用 swap


5. 内核参数 & 模块

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

sysctl --system

modprobe br_netfilter

二、容器运行时(CRI)

1. Docker ≠ 直接支持

  • Kubernetes 1.24+ 已移除 dockershim
  • 推荐使用:
    • ✅ containerd(最推荐)
    • ✅ cri-o

containerd 安装要点

yum install -y containerd
systemctl enable --now containerd

注意 SystemdCgroup = true 配置


三、Kubernetes 安装方式

常见方式对比

方式 适合场景
kubeadm ✅ 生产 / 学习最常用
二进制 高级定制
kubespray 多节点自动化

kubeadm 注意事项

kubeadm init \
  --pod-network-cidr=10.244.0.0/16
  • 确保:
    • 各节点时间同步(NTP)
    • hostname 唯一
    • /etc/hosts 正确解析

四、网络插件(CNI)

常见选择:

  • ✅ Calico(生产推荐)
  • Flannel(简单)
  • Cilium(高性能)

注意:

  • pod CIDR 不要和宿主机网段冲突
  • 网络插件版本要和 k8s 版本匹配

五、节点与资源配置

1. 最低配置

角色 CPU 内存
Master 2C 4G
Worker 2C 4G

生产建议 Master ≥ 4C8G


2. 主机名 & hosts

hostnamectl set-hostname k8s-master
cat /etc/hosts
192.168.1.10 k8s-master
192.168.1.11 k8s-node1

六、安全与生产建议

1. kube-apiserver 访问控制

  • 不要暴露 6443 到公网
  • 使用 RBAC
  • 使用证书 / token 认证

2. etcd 备份

etcdctl snapshot save snapshot.db

一定定期备份!


3. 高可用(HA)

  • 多 Master(3 节点)
  • 使用:
    • keepalived + haproxy
    • 或云负载均衡

七、常见坑总结(血泪经验)

❌ swap 没关 → kubelet 起不来
❌ SELinux 没关 → pod 无法运行
❌ 时间不同步 → certificate expired
❌ firewalld 开着 → 节点 NotReady
❌ Docker 版本不兼容 → 容器起不来


八、部署后检查清单

kubectl get nodes
kubectl get pods -A
kubectl cluster-info

如果你愿意,我可以:

  • ✅ 给你一套 CentOS 7 + kubeadm 实战步骤
  • ✅ 帮你规划 生产级 k8s 架构
  • ✅ 针对你当前 CentOS 版本给出具体命令

你现在是 学习环境还是生产环境?单节点还是多节点?

0