bitnamicharts/ciliumCilium 是一款基于 eBPF 的网络、可观测性和安全工具,适用于 Docker 和 Kubernetes 等 Linux 容器管理平台。Bitnami 提供的 Cilium Helm 图表经过精心设计和持续维护,可快速、轻松地在 Kubernetes 集群上部署容器,满足生产工作负载需求。
Cilium 官方概述
商标说明:本软件列表由 Bitnami 打包。所提及的商标分属各自公司所有,使用这些商标并不意味着任何关联或背书。
自 2025 年 8 月 28 日起,Bitnami 将升级其公共镜像仓库,通过新的 Bitnami Secure Images 计划 提供精选的强化、安全聚焦镜像。此次变更包括:
有关详细信息,请访问 Bitnami Secure Images 公告。
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/cilium
指定仓库和发布名称安装:
consolehelm install my-release oci://REGISTRY_NAME/REPOSITORY_NAME/cilium
说明:需将
REGISTRY_NAME和REPOSITORY_NAME替换为实际仓库地址,例如 Bitnami 官方仓库为registry-1.docker.io/bitnamicharts。
默认情况下,图表会安装内部 etcd。如需使用外部键值存储(如托管服务),需禁用内部 etcd 并配置外部端点:
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/cilium \ --set etcd.enabled=false \ --set externalKvstorehost.enabled=true \ --set externalKvstorehost.endpoints[0]=external-kvstore-host-0:2379 \ --set externalKvstorehost.endpoints[1]=external-kvstore-host-1:2379
图表默认在节点上安装 Cilium CNI 插件。如需自定义:
--set agent.cniPlugin.install=falseyamlagent: cniPlugin: hostCNIBinDir: "/opt/cni/bin" # CNI 二进制文件路径 hostCNINetDir: "/etc/cni/net.d" # CNI 配置文件路径
通过 Hubble 组件加密通信需启用 TLS 并配置证书:
consolekubectl create secret generic ca-tls-secret --from-file=./tls.crt --from-file=./tls.key
yamlhubble: tls: enabled: true existingCASecret: "ca-tls-secret" peers: existingSecret: "peers-tls-secret" relay: existingSecret: "relay-tls-secret" client: existingSecret: "client-tls-secret"
--set hubble.tls.autoGenerated.enabled=true --set hubble.tls.autoGenerated.engine=helmyamlhubble: tls: autoGenerated: enabled: true engine: cert-manager certManager: existingIssuer: "my-issuer" existingIssuerKind: "ClusterIssuer"
启用各组件指标采集并暴露给 Prometheus:
yamlagent: metrics: enabled: true # 启用 Cilium Agent 指标 service: annotations: prometheus.io/scrape: "true" prometheus.io/port: "9090" hubble: peers: metrics: enabled: true # 启用 Hubble Peers 指标 relay: metrics: enabled: true # 启用 Hubble Relay 指标 envoy: metrics: enabled: true # 启用 Envoy 指标 operator: metrics: enabled: true # 启用 Operator 指标
前提:集群需已安装 Prometheus 或 Prometheus Operator,推荐使用 Bitnami Prometheus Helm 图表。
通过 Ingress 暴露 Hubble UI(需集群已安装 Ingress 控制器,如 NGINX Ingress):
yamlhubble: ui: enabled: true ingress: enabled: true hostname: hubble.example.com # 自定义域名 tls: - hosts: - hubble.example.com secretName: hubble-tls-secret # TLS 密钥名称
yamlagent: extraEnvVars: - name: LOG_LEVEL value: "error" # 调整日志级别 # 或从 ConfigMap/Secret 导入 extraEnvVarsCM: "my-configmap" # 包含环境变量的 ConfigMap 名称 extraEnvVarsSecret: "my-secret" # 包含环境变量的 Secret 名称
yamlagent: sidecars: - name: "log-exporter" image: "busybox:latest" command: ["sh", "-c", "tail -f /var/log/cilium.log"] # 暴露 Sidecar 端口 service: extraPorts: - name: "log-port" port: 8080 targetPort: 8080
使用 Velero 工具备份和恢复 Helm 部署的持久化卷:
consolevelero backup create cilium-backup --include-resources pods,pv,pvc,configmaps,secrets --selector app.kubernetes.io/instance=my-release
consolevelero restore create --from-backup cilium-backup
详细指南:使用 Velero 备份和恢复 Kubernetes 部署
| 参数名 | 描述 | 默认值 |
|---|---|---|
global.imageRegistry | 全局 Docker 镜像仓库地址 | "" |
global.imagePullSecrets | 全局镜像拉取密钥数组 | [] |
global.defaultStorageClass | 持久化卷默认存储类 | "" |
global.security.allowInsecureImages | 是否允许跳过镜像验证 | false |
global.compatibility.openshift.adaptSecurityContext | 适配 OpenShift 安全上下文(auto/force/disabled) | auto |
| 参数名 | 描述 | 默认值 |
|---|---|---|
kubeVersion | 覆盖 Kubernetes 版本 | "" |
nameOverride | 部分覆盖资源名称前缀 | "" |
fullnameOverride | 完全覆盖资源全名 | "" |
commonLabels | 所有资源通用标签 | {} |
commonAnnotations | 所有资源通用注解 | {} |
clusterDomain | Kubernetes 集群域名 | cluster.local |
diagnosticMode.enabled | 启用诊断模式(禁用探针并覆盖命令) | false |
| 参数名 | 描述 | 默认值 |
|---|---|---|
agent.image.registry | Agent 镜像仓库 | REGISTRY_NAME |
agent.image.repository | Agent 镜像路径 | REPOSITORY_NAME/cilium |
agent.image.pullPolicy | 镜像拉取策略 | IfNotPresent |
agent.image.pullSecrets | 镜像拉取密钥 | [] |
agent.cniPlugin.install | 是否安装 CNI 插件 | true |
注意:完整参数列表请参见 Bitnami Cilium 图表 GitHub 文档。
卸载 Helm 发布:
consolehelm uninstall my-release
注意:卸载不会自动删除持久化卷和密钥,需手动清理:
consolekubectl delete pvc -l app.kubernetes.io/instance=my-release kubectl delete secret -l app.kubernetes.io/instance=my-release
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务