梳理观测流水线与身份
目标
配置 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: true、hubble.relay.enabled: true、hubble.ui.enabled: true、hubble.eventBufferCapacity: 16383。
需要分别启用服务器、聚合器与界面,并扩大容易快速轮转的默认 ring buffer。
导出指标与安全事件
在同一文件加入 hubble.metrics.enabled 列表,包含 drop、dns、flow、httpV2。随后在 hubble.export 下配置动态 export,使 includeFilters 的 verdict 同时包含 DROPPED 与 AUDIT。
同时覆盖丢弃、DNS、flow、HTTP 指标,并导出真实阻断和审计模式下本应阻断的事件。
部署带标签的工作负载
在 namespace cca-obs 部署 2 replicas 的 Deployment checkout。Pod template 标签为 app=checkout 与 team=payments,镜像为 nginx:1.27-alpine。
身份由 Pod 标签集合计算,因此标签必须放在 Pod template,而不是只放在 Deployment。
整理包含与排除的身份标签
在同一 namespace 创建 ConfigMap identity-labels。键 included 包含 app、team、io.kubernetes.pod.namespace;键 excluded 包含 pod-template-hash、controller-revision-hash、pod-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_DENIED、CT_MAP_INSERT_FAILED、UNSUPPORTED_L3_PROTOCOL、STALE_OR_UNROUTABLE_IP 及各自首先应怀疑的位置。
查询应同时覆盖 verdict、namespace、DNS 与特定 Pod;诊断表要说明每种原因优先排查什么。
创建丢弃激增与 agent 宕机告警
在 /root/cca-hubble/hubble-alerts.yaml 编写 Prometheus alert rules。groups[0].name 为 cilium-policy,包含两条规则:PolicyDropSpike 的 expr 使用 hubble_drop_total 的 rate 并限定 POLICY_DENIED,设置 for: 10m、severity warning;第二条名为 CiliumAgentDown,severity 为 critical。
累计 counter 必须看 rate,并按丢弃原因过滤;设置持续时间以避免瞬时尖峰触发。