Cilium CLI 安装指南:版本选择、校验和下载脚本逐项解析
【免费下载链接】ciliumeBPF-based Networking, Security, and Observability项目地址: https://gitcode.com/GitHub_Trending/ci/cilium
Cilium CLI 是管理 Cilium 集群的核心命令行工具,可用于安装 Cilium、查看安装状态、以及启用/禁用 Hubble、ClusterMesh 等功能。本文基于仓库中的安装文档 cli-download.rst,完整给出 Linux/macOS 两平台的官方安装脚本,逐项解析脚本中每个变量的作用与校验逻辑,并结合 cilium-cli 源码 说明 CLI 的子命令体系与全局参数,帮助你在安装后直接上手运维 Cilium 集群。
Cilium CLI 的定位
根据官方安装文档,Cilium CLI 的能力覆盖三类场景:
- 安装 Cilium——以 Helm 为基础把 Cilium 部署到当前 Kubernetes 上下文;
- 检查安装状态——聚合节点、Pod、内核版本等健康信息;
- 启用/禁用功能——例如 Clustermesh(多集群组网)、Hubble(可观测层)等。
从源码结构看,CLI 的入口在 main.go,它启动 gops 调试 agent 后调用cli.NewDefaultCiliumCommand()构建 Cobra 根命令并执行;构建时通过 ldflags 注入版本号(见 cilium-cli/Makefile 中的-X "github.com/cilium/cilium/cilium-cli/defaults.CLIVersion=$(CLI_VERSION)"),版本号取自git describe --tags --always,因此 Release 二进制自带的版本信息与 Git tag 严格对应。
Linux 安装脚本
官方文档给出的完整脚本如下(默认 amd64,自动识别 aarch64):
CILIUM_CLI_VERSION=$(curl -s https://raw.githubusercontent.com/cilium/cilium-cli/main/stable.txt) CLI_ARCH=amd64 if [ "$(uname -m)" = "aarch64" ]; then CLI_ARCH=arm64; fi curl -L --fail --remote-name-all https://github.com/cilium/cilium-cli/releases/download/${CILIUM_CLI_VERSION}/cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum} sha256sum --check cilium-linux-${CLI_ARCH}.tar.gz.sha256sum sudo tar xzvfC cilium-linux-${CLI_ARCH}.tar.gz /usr/local/bin rm cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum}各步骤说明:
| 步骤 | 命令 | 作用 |
|---|---|---|
| 1 | CILIUM_CLI_VERSION=$(curl -s .../stable.txt) | 拉取 Cilium CLI 仓库 main 分支的stable.txt文件,得到当前稳定版本号 |
| 2 | CLI_ARCH=amd64+uname -m判断 | 架构选择:x86_64 用 amd64,aarch64 自动切换为 arm64 |
| 3 | curl -L --fail --remote-name-all ...{,.sha256sum} | 一次下载 tar.gz 与其.sha256sum校验文件;-L跟随 302 跳转(GitHub Releases 会跳转到 CDN),--fail保证 HTTP 错误时非零退出 |
| 4 | sha256sum --check ... | 校验包完整性与来源一致性 |
| 5 | sudo tar xzvfC ... /usr/local/bin | 直接解包到/usr/local/bin,二进制名为cilium |
| 6 | rm ... | 清理下载的 tar.gz 与校验文件 |
macOS 安装脚本
macOS 版本与 Linux 几乎一致,仅有两处差异:架构检测判断的是arm64(Apple Silicon 的uname -m输出),校验命令使用 BSD 自带的shasum:
CILIUM_CLI_VERSION=$(curl -s https://raw.githubusercontent.com/cilium/cilium-cli/main/stable.txt) CLI_ARCH=amd64 if [ "$(uname -m)" = "arm64" ]; then CLI_ARCH=arm64; fi curl -L --fail --remote-name-all https://github.com/cilium/cilium-cli/releases/download/${CILIUM_CLI_VERSION}/cilium-darwin-${CLI_ARCH}.tar.gz{,.sha256sum} shasum -a 256 -c cilium-darwin-${CLI_ARCH}.tar.gz.sha256sum sudo tar xzvfC cilium-darwin-${CLI_ARCH}.tar.gz /usr/local/bin rm cilium-darwin-${CLI_ARCH}.tar.gz{,.sha256sum}对于脚本未覆盖的平台(例如 Windows),官方文档指引直接查看 Cilium CLI 的 Releases 页面获取对应的发布产物。
版本选择与发布产物的对应关系
stable.txt文件在仓库根目录有一份副本,当前仓库中其内容为v1.20.1(见 stable.txt)。需要注意两个要点:
- 版本来源:脚本从 cilium-cli 仓库的
main分支读取stable.txt,因此安装得到的永远是“当前受支持的稳定版 CLI”,而不是最新 nightly; - 发布产物命名:从 cilium-cli/Makefile 的
local-release目标可以看出,官方发布流程为 darwin/linux/windows 三个平台、amd64/arm64 两种架构交叉编译,linux/darwin 打包为cilium-<os>-<arch>.tar.gz并生成.sha256sum,Windows 则打包为cilium-windows-<arch>.zip。这与下载脚本中的文件名规则完全吻合,也解释了为何 Windows 用户不走 tar.gz 脚本而需要直接到 Releases 页面取 zip 包。
开发中构建:使用未发布的 Helm chart
文档中有一节仅对非 stable 文档生效(.. only:: not stable),提示开发场景下可以克隆 cilium 仓库,让 CLI 访问 main 分支上最新的未发布 Helm chart:
git clone git@github.com:cilium/cilium.git cd cilium这一步的意义在于:CLI 的cilium install底层是 Helm 安装,开发主分支 Cilium 时,需要让 CLI 能拉取到与源码版本匹配的 chart。
安装后的命令体系
安装完成后,cilium命令即出现在/usr/local/bin。从 cli/cmd.go 的AddCommand注册列表可以看到 CLI 的完整子命令面:
$ cilium install # 以 Helm 安装 Cilium 到当前 k8s 上下文 $ cilium status # 检查 Cilium 状态 $ cilium hubble enable # 启用 Hubble 可观测层 $ cilium connectivity test # 执行连通性测试其余注册的子命令包括:
| 子命令 | 用途 |
|---|---|
bgp | BGP 对等与路由查询 |
clustermesh | 多集群 Clustermesh 的连接、启用/禁用 |
config | 查看/修改/删除运行时配置 |
connectivity | 部署测试工作负载并执行端到端连通性测试 |
context | 切换/查看 Kubernetes 上下文 |
encrypt | 创建/轮换加密密钥、查看密钥状态 |
features | 查询集群特性摘要与状态 |
hubble | 启用/禁用 Hubble、端口转发、启动 UI |
multicast | 管理多播组与订阅者 |
status | 汇总集群健康状态 |
sysdump | 收集故障诊断数据包 |
version | 查看版本信息 |
uninstall/upgrade | Helm 卸载 / 升级 |
这些子命令与文档开头描述的三大能力(安装、状态检查、功能开关)一一对应:例如clustermesh与hubble正是文档中点名的可启用/禁用功能。
全局参数
所有子命令共享一组持久化参数(同样定义在 cli/cmd.go):
| 参数 | 默认值 | 说明 |
|---|---|---|
--context | 空 | 指定 Kubernetes 配置上下文 |
--namespace/-n | kube-system(可用环境变量CILIUM_NAMESPACE覆盖) | Cilium 运行的命名空间 |
--as/--as-group | 空 | 用户/用户组模拟(impersonation) |
--helm-release-name | cilium | Helm release 名称 |
--kubeconfig | 空 | kubeconfig 文件路径 |
下一步
安装完成后,通常紧接着的操作是:
- 在目标 Kubernetes 集群执行
cilium install(Helm 安装流程与平台特定参数参见 k8s-install-helm.rst); - 用
cilium status确认部署成功(参见 cli-status.rst); - 运行
cilium connectivity test做连通性验证(参见 cli-connectivity-test.rst)。
如果安装校验失败,建议优先检查第 4 步sha256sum --check/shasum -a 256 -c的输出——校验不通过意味着下载的 tar.gz 与官方产物不一致,应重新下载而不是强行解包。
【免费下载链接】ciliumeBPF-based Networking, Security, and Observability项目地址: https://gitcode.com/GitHub_Trending/ci/cilium
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考