LabHub
学习 学习路径 课程

CCA — Cilium 认证助理

梳理观测流水线与身份

在 LabHub 中继续学习

目标

配置 Hubble 可观测性、身份标签、常用流量查询和 Prometheus 告警,以便区分策略拒绝、审计事件和代理故障。

说明

在指定 namespace 和目录中完成配置,保留要求的标签、指标、过滤器、查询与告警字段。

必须保留的命令、路径与标识符

pod-template-hash /root/cca-hubble/ cca-obs /root/cca-hubble/hubble-values.yaml hubble.enabled: true hubble.relay.enabled: true hubble.ui.enabled: true hubble.eventBufferCapacity: 16383 hubble.metrics.enabled drop dns flow httpV2 hubble.export DROPPED AUDIT cca-obs checkout app=checkout team=payments nginx:1.27-alpine identity-labels included app team io.kubernetes.pod.namespace excluded pod-template-hash controller-revision-hash pod-template-generation /root/cca-hubble/hubble-queries.txt hubble observe --verdict DROPPED --verdict AUDIT --namespace cca-obs --protocol dns --from-pod /root/cca-hubble/drop-reasons.md POLICY_DENIED CT_MAP_INSERT_FAILED UNSUPPORTED_L3_PROTOCOL STALE_OR_UNROUTABLE_IP /root/cca-hubble/hubble-alerts.yaml groups[0].name cilium-policy PolicyDropSpike hubble_drop_total rate POLICY_DENIED for: 10m warning CiliumAgentDown critical kubectl create configmap identity-labels -n cca-obs --from-literal=included=... --from-literal=excluded=... | metadata.labels spec.template.metadata.labels for

创建可观测性实验 namespace

创建 namespace cca-obs

第一步只需确保名称完全正确。

编写 Hubble 启用值

创建 /root/cca-hubble/hubble-values.yaml,写入 hubble.enabled: truehubble.relay.enabled: truehubble.ui.enabled: truehubble.eventBufferCapacity: 16383

需要分别启用服务器、聚合器与界面,并扩大容易快速轮转的默认 ring buffer。

导出指标与安全事件

在同一文件加入 hubble.metrics.enabled 列表,包含 dropdnsflowhttpV2。随后在 hubble.export 下配置动态 export,使 includeFilters 的 verdict 同时包含 DROPPEDAUDIT

同时覆盖丢弃、DNS、flow、HTTP 指标,并导出真实阻断和审计模式下本应阻断的事件。

部署带标签的工作负载

在 namespace cca-obs 部署 2 replicas 的 Deployment checkout。Pod template 标签为 app=checkoutteam=payments,镜像为 nginx:1.27-alpine

身份由 Pod 标签集合计算,因此标签必须放在 Pod template,而不是只放在 Deployment。

整理包含与排除的身份标签

在同一 namespace 创建 ConfigMap identity-labels。键 included 包含 appteamio.kubernetes.pod.namespace;键 excluded 包含 pod-template-hashcontroller-revision-hashpod-template-generation

会随 rollout 改变的标签不应进入身份,否则每次部署都会重算策略映射。

编写常用查询与丢弃原因表

/root/cca-hubble/hubble-queries.txt 写至少 5 行以 hubble observe 开头的查询,并分别至少包含一次 --verdict DROPPED--verdict AUDIT--namespace cca-obs--protocol dns 和用 --from-pod 指定 Pod。再在 /root/cca-hubble/drop-reasons.md 创建 Markdown 表,列出 POLICY_DENIEDCT_MAP_INSERT_FAILEDUNSUPPORTED_L3_PROTOCOLSTALE_OR_UNROUTABLE_IP 及各自首先应怀疑的位置。

查询应同时覆盖 verdict、namespace、DNS 与特定 Pod;诊断表要说明每种原因优先排查什么。

创建丢弃激增与 agent 宕机告警

/root/cca-hubble/hubble-alerts.yaml 编写 Prometheus alert rules。groups[0].namecilium-policy,包含两条规则:PolicyDropSpike 的 expr 使用 hubble_drop_totalrate 并限定 POLICY_DENIED,设置 for: 10m、severity warning;第二条名为 CiliumAgentDown,severity 为 critical

累计 counter 必须看 rate,并按丢弃原因过滤;设置持续时间以避免瞬时尖峰触发。