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 集群之间的交互关系:

实验环境架构总览 管理节点 Helm CLI cilium-cli kubectl Kubernetes API 集群控制面 Worker 节点组 Cilium Agent (DaemonSet) eBPF 数据平面 资源配额 (requests/limits) 网络拓扑 (Overlay/Routing) Helm 通过 values 文件控制 Cilium 的资源配额与网络模式;cilium-cli 用于验证拓扑与性能 Helm 部署流程 helm install values 解析 资源配额生效 Cilium 运行

1.5 实验环境快速验证清单

在开始后续章节前,请逐项确认以下环境就绪状态:

  1. 集群连通性: kubectl cluster-info 返回正常
  2. 内核版本: 所有节点 uname -r 输出 ≥ 5.10
  3. Helm 可用: helm repo add cilium https://helm.cilium.io/ 成功
  4. cilium-cli 可用: cilium status 可识别集群(即使未安装 Cilium)
  5. 节点标签: 至少 2 个 worker 节点 kubectl get nodes 状态为 Ready