4. 环境准备:Kubernetes 集群搭建要求与 Cilium 安装方式选择

在开始 Cilium 与数据传输优化实战之前,必须搭建一个满足 Cilium 运行条件的 Kubernetes 集群,并选择正确的安装方式。本章将明确集群的硬件、内核与网络要求,并对比 Helm 与 CLI 两种安装路径的适用场景。

4.1 Kubernetes 集群搭建要求

Cilium 依赖 eBPF 技术,对内核版本、节点配置和 CNI 插槽有严格限制。以下表格列出了生产级集群的最低要求与推荐配置:

维度 最低要求 推荐配置 说明
Linux 内核 4.19 ≥ 5.10 5.10+ 支持完整 eBPF 特性(BTF、BPF 迭代器)
Kubernetes 版本 1.21 ≥ 1.26 新版本对 Cilium 的 CRD 与 API 兼容性更好
节点数量 1 (单节点测试) ≥ 3 (控制面 + 工作节点) 生产环境建议奇数控制面节点
CPU / 内存 2 vCPU / 4 GB 4 vCPU / 8 GB 每节点 Cilium Agent 与 eBPF 程序需要额外资源
容器运行时 containerd 1.5 / CRI-O 1.22 containerd 1.7+ 需启用 systemd cgroup 驱动
网络端口 6443 (API Server), 4244 (Cilium Hubble) 全端口开放 节点间需互通 VXLAN/Geneve 端口
文件系统 ext4 / xfs xfs (d_type 支持) BPF 文件系统需挂载 /sys/fs/bpf
⚠ 内核版本检查命令: 在每台节点上执行 uname -r 确认内核版本。若低于 5.10,建议升级后再部署 Cilium,否则可能丢失带宽管理、Service Mesh 等高级功能。

4.2 Cilium 安装方式对比:Helm vs CLI

Cilium 官方提供两种主流安装方式:Helm Chart 和 Cilium CLI。选择哪种方式取决于你的运维习惯、集群规模以及对参数定制的要求。

对比维度 Helm 安装 Cilium CLI 安装
安装命令 helm install cilium cilium/cilium --namespace kube-system cilium install
参数管理 通过 --set 或 values.yaml 文件 通过 --config 或交互式向导
版本控制 Helm Chart 版本与 Cilium 版本独立 CLI 自动匹配最新稳定版
升级回滚 helm upgrade / helm rollback cilium upgrade / cilium revert
适用场景 生产环境、GitOps 流程、需要精细参数定制 快速验证、开发测试、Demo 演示
依赖项 需预先安装 Helm 3+ 需下载 Cilium CLI 二进制
💡 选择建议: 本课程实战部分将采用 Helm 安装,因为 Helm 方式更符合生产环境基础设施即代码(IaC)的规范,且便于在后续章节中动态调整 Cilium 的数据传输优化参数(如带宽管理器、WireGuard 加密等)。

4.3 安装流程总览

下图展示了从集群准备到 Cilium 部署完成的整体流程,以及 Helm 与 CLI 两种路径的入口差异:

Cilium 安装流程总览 Kubernetes 集群就绪 选择安装方式 Helm 安装 Cilium CLI 安装 helm repo add / helm install cilium install / cilium status 验证部署 (cilium status)

4.4 快速安装示例(Helm 方式)

以下命令演示了使用 Helm 安装 Cilium 的标准步骤,包含必要的参数预配置:

# 1. 添加 Cilium Helm 仓库
helm repo add cilium https://helm.cilium.io/
helm repo update

# 2. 安装 Cilium(启用 Hubble 可观测性)
helm install cilium cilium/cilium \
  --namespace kube-system \
  --set hubble.relay.enabled=true \
  --set hubble.ui.enabled=true \
  --set cluster.name=cilium-demo \
  --set cluster.id=1

# 3. 等待所有 Pod 就绪
kubectl -n kube-system wait --for=condition=ready pod -l k8s-app=cilium --timeout=300s

# 4. 验证安装
cilium status --wait
📌 关键参数说明:
  • hubble.relay.enabled=true — 启用 Hubble Relay,用于跨节点流量观测。
  • cluster.name — 集群标识,多集群场景下必须唯一。
  • cluster.id — 集群 ID,用于 Cluster Mesh 互联。

4.5 安装后验证清单

部署完成后,建议按以下清单逐项确认 Cilium 是否正常运行:

  1. 检查 Cilium Agent Pod 状态: kubectl -n kube-system get pods -l k8s-app=cilium,所有 Pod 应为 Running。
  2. 检查 Cilium 状态: cilium status,输出中应显示 KVStore: Ok、Kubernetes: Ok、Cilium: Ok。
  3. 检查 eBPF 挂载: 在任意节点执行 mount | grep bpf,确认 /sys/fs/bpf 已挂载。
  4. 测试 Pod 连通性: 部署两个测试 Pod,使用 kubectl exec 执行 ping 测试。
  5. 检查 Hubble UI: 通过 kubectl port-forward 暴露 Hubble UI 服务,在浏览器中查看服务拓扑。
🔍 排障提示: 如果 cilium status 显示 KVStore: Failure,通常是因为 etcd 连接问题或 Cilium 与集群的 API Server 版本不兼容。检查 cilium-agent 日志:kubectl -n kube-system logs ds/cilium -c cilium-agent。