1. 课程导论与实验环境准备
1.1 Helm 与 Cilium 在云原生中的定位
在云原生技术栈中,Helm 和 Cilium 分别承担着“应用交付标准化”与“网络与安全基础设施”两个关键角色。理解它们的定位是后续调优的基础。
| 组件 | 核心定位 | 在课程中的角色 |
|---|---|---|
| Helm | Kubernetes 包管理器,通过 Chart 定义、安装、升级复杂应用 | 管理 Cilium 及其资源配额的生命周期,实现可重复的部署与配置 |
| Cilium | 基于 eBPF 的容器网络、安全与可观测性 CNI 插件 | 提供高性能网络拓扑与安全策略,是性能调优的核心对象 |
| 协同关系 | Helm 负责“部署与配置”,Cilium 负责“数据平面与策略” | 通过 Helm values 精细控制 Cilium 资源配额与网络行为 |
课程核心视角: 本课程不单独讲 Helm 或 Cilium 的基础用法,而是聚焦于 Helm 资源配额(requests/limits) 与 Cilium 网络拓扑(eBPF 数据路径) 之间的协同调优,解决生产环境中资源争抢与网络延迟的耦合问题。
1.2 实验集群要求
为保证 Cilium 的 eBPF 特性完整生效,实验集群必须满足以下硬性条件:
- Kubernetes 版本: v1.28 及以上(推荐 v1.30+,支持最新的 Cilium 特性)
- Linux 内核版本: 5.10 及以上(推荐 6.x,以获得更优的 eBPF 性能与功能)
- 节点数量: 至少 2 个 worker 节点(用于验证跨节点网络拓扑)
- 容器运行时: containerd 或 CRI-O(Docker 已弃用)
- CNI 状态: 集群未安装其他 CNI 插件,或已清理干净
内核版本验证: 如果内核低于 5.10,Cilium 将无法使用 eBPF 主机路由、Bandwidth Manager 等关键性能特性,课程中的调优实验将无法复现。请务必在实验前执行
uname -r 确认。
1.3 工具链安装
在实验节点(通常是管理节点或跳板机)上安装以下 CLI 工具:
| 工具 | 版本要求 | 安装方式 | 验证命令 |
|---|---|---|---|
| kubectl | 与集群版本匹配 | curl 下载或包管理器 | kubectl version --client |
| helm | v3.15+ | 官方脚本或二进制 | helm version |
| cilium-cli | v0.16+ | GitHub 发布页下载 | cilium version |
快速安装参考(Linux amd64):
# 安装 kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl && sudo mv kubectl /usr/local/bin/
# 安装 helm
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh && ./get_helm.sh
# 安装 cilium-cli
curl -L --remote-name-all https://github.com/cilium/cilium-cli/releases/latest/download/cilium-linux-amd64.tar.gz{,.sha256sum}
sha256sum --check cilium-linux-amd64.tar.gz.sha256sum
sudo tar xzvfC cilium-linux-amd64.tar.gz /usr/local/bin
rm cilium-linux-amd64.tar.gz{,.sha256sum}
1.4 实验环境架构总览
下图展示了本课程实验环境的整体架构,以及 Helm、Cilium、Kubernetes 集群之间的交互关系:
1.5 实验环境快速验证清单
在开始后续章节前,请逐项确认以下环境就绪状态:
- 集群连通性:
kubectl cluster-info返回正常 - 内核版本: 所有节点
uname -r输出 ≥ 5.10 - Helm 可用:
helm repo add cilium https://helm.cilium.io/成功 - cilium-cli 可用:
cilium status可识别集群(即使未安装 Cilium) - 节点标签: 至少 2 个 worker 节点
kubectl get nodes状态为 Ready