CentOS 安装 Kubernetes 的必备条件
一 硬件与系统
- 节点规模
- 学习/测试:至少 1 台(单节点,控制面与工作负载同机)。
- 高可用:建议 3 台及以上(如 1 主 2 从)。
- 硬件基线(单台)
- CPU:≥2 核(推荐 4 核+)。
- 内存:≥2 GB(推荐 4–8 GB+,生产更高)。
- 存储:≥20 GB(推荐 30–100 GB+,有镜像/日志与应用负载建议更大)。
- 磁盘类型:优先 SSD(提升镜像拉取与容器 IO)。
- 操作系统
- 推荐 CentOS Stream 8/9 或 Rocky Linux 8/9;如使用 CentOS 7,需确认内核与仓库可用性(社区已转向 Stream/Rocky)。
- 网络
- 节点间 互通,并可访问外网以下载镜像与依赖;建议固定 IP 与主机名。
二 系统与内核参数
- 基础配置
- 禁用 Swap:swapoff -a 并注释 /etc/fstab 中的 swap 行。
- SELinux:可临时 setenforce 0,并在 /etc/selinux/config 设置 SELINUX=disabled(或按策略放行)。
- 防火墙:可临时 systemctl stop firewalld && systemctl disable firewalld;生产环境更推荐按端口放行策略替代直接关闭。
- 内核与桥接
- 启用桥接流量进入 iptables:创建 /etc/sysctl.d/k8s.conf,加入
- net.bridge.bridge-nf-call-ip6tables = 1
- net.bridge.bridge-nf-call-iptables = 1
- net.ipv4.ip_forward = 1
- 执行 sysctl --system 生效。
- 容器运行时
- 推荐 containerd(Kubernetes 原生 CRI);如使用 Docker,需将 cgroup driver 设为 systemd 以避免与 kubelet 冲突。
三 软件组件与网络
- 软件清单
- 在所有节点安装 kubeadm、kubelet、kubectl(版本保持一致),并启用 kubelet 开机自启。
- 添加 Kubernetes YUM 源(可用官方或国内镜像源),安装对应版本组件。
- 容器运行时
- 安装并启动 containerd(或 Docker),确保与 kubelet 的 cgroup 驱动一致(优先 systemd)。
- 网络要求
- 节点间需开放关键端口(如 6443 API Server、10250 kubelet 等);或按安全组/防火墙策略精细放行。
- 部署集群后安装 Pod 网络插件(如 Flannel),确保 Pod 间与节点间网络互通。
四 快速自检清单
- 命令结果参考
- 内核与模块:uname -r(内核较新)、lsmod | grep br_netfilter(桥接模块加载)
- Swap:swapon --show(应无输出)
- SELinux:getenforce(返回 Disabled/Permissive 或按策略放行)
- 防火墙:firewall-cmd --state(应 stopped 或已放行所需端口)
- 容器运行时:crictl ps(或 docker ps)可正常列出容器
- 组件版本:kubeadm version、kubelet --version、kubectl version --client
- 集群就绪
- kubectl get nodes 显示 Ready
- kubectl get pods -A 核心组件 Running
- 简单连通性测试:部署一个 Nginx 并通过 NodePort 访问验证