Cilium 如何将身份管理从 Agent 迁移到 Operator 而不中断连接
2026/9/13 19:53:08 网站建设 项目流程

Cilium 如何将身份管理从 Agent 迁移到 Operator 而不中断连接

【免费下载链接】ciliumeBPF-based Networking, Security, and Observability项目地址: https://gitcode.com/GitHub_Trending/ci/cilium

在 Cilium 中,Cilium Identity(CID)默认由每个节点上的 Cilium Agent 管理。当你希望把身份创建集中到 Cilium Operator,同时又不希望现有连接和工作负载管理受到中断时,官方文档给出了一条两阶段的迁移路径:先让 Operator 和 Agent 同时管理身份(both),再把管理权切到 Operator(operator)。这条中间态是刻意设计的过渡状态,目的就是在切换期间把对集群的影响降到最低。

该功能目前标记为 Beta(identity-management-mode.rst 中的说明),使用时如遇问题建议反馈 issue。

为什么要把身份管理切到 Operator

文档给出的背景是:集群中身份总数和 eBPF Policy Map 大小存在上限。多个 Agent 同时为同一组标签创建身份时可能出现 CID 重复;由 Operator 集中创建身份可以减少这种重复,从而提高网络策略的可靠性和集群的可扩展性。如果你的集群规模或策略复杂度已经接近这些上限,这就是迁移的动机。

迁移前的准备

  • 当前模式下identityManagementMode的默认值为agent(Helm values 中为identityManagementMode: "agent",Agent 和 Operator 的--identity-management-mode参数默认值均为agent,见 cilium-agent.md)。
  • 配置入口有两个,任选其一即可:
    • Helm chart 的identityManagementMode值;
    • cilium-configConfigMap 中的identity-management-mode标志(取值agent/operator/both)。
  • 如果后续还要调整与身份管理相关的标签(在 Cilium ConfigMap 中配置,参见 identity-management-mode.rst 中指向identity-relevant-labels的说明),注意:当 Operator 管理身份时,必须同时重启 Operator 和 Agent 才能生效。

迁移步骤(Agent → Operator)

按文档给出的顺序执行,两步之间有一个“双方同时管理身份”的过渡态:

第一步:进入过渡态both,重启 Operator

在 Helm chart 中将identityManagementMode设为both,或等价地在cilium-configConfigMap 中设置identity-management-mode: both

# Helm values identityManagementMode: "both"
# cilium-config ConfigMap identity-management-mode: "both"

设置完成后重启 Cilium Operator,让 Operator 开始承担身份管理。

第二步:确认 Operator 运行后,把 Agent 切到operator

待 Operator 正常运行后,将identityManagementMode改为operator(Helm values)或在cilium-config中设置identity-management-mode: operator,然后重启 Cilium Agent DaemonSet。至此身份创建由 Operator 集中完成。

注意文档的提示:只要 Cilium Agent 还在创建身份(即停留在both过渡态期间),CID 重复问题就可能发生,因此both状态只应作为迁移期间的临时状态,不要长期保持。

回退:从 Operator 降回 Agent 管理

如果迁移后需要回退,文档给出的安全顺序与迁移相反,同样借助both过渡态:

  1. 先把 Cilium Agent 降回both:在 Helm 或cilium-config中设置identity-management-mode: both,重启 Cilium Agent DaemonSet;
  2. 待 Agent 运行后,再把 Operator 降回agent,重启 Operator。

不要在未让 Agent 先回到both的情况下直接把 Operator 改为agent,否则会跳过过渡态、失去双管理缓冲。

结果验证:观察 Operator 的身份管理指标

文档没有给出迁移完成的固定日志或输出样例,而是指向 metrics 文档 中的 Identity Management Mode 一节,列出了两个与 Operator 管理身份直接相关的指标:

指标标签说明(文档原文)
cid_controller_work_queue_event_countresource,outcomeCounts processed events by CID controller work queues
cid_controller_work_queue_latencyresource,phaseDuration of CID controller work queues enqueuing and processing latencies in seconds

迁移完成后,Operator 侧的 CID controller 工作队列应持续处理事件(cid_controller_work_queue_event_count有事件统计、延迟指标有读数),这可以作为 Operator 已实际承担身份管理工作的观察依据。文档没有规定具体阈值,请以你集群迁移前的基线自行对比,不要假设固定数值。

限制与注意事项

  • 该功能是 Beta 特性,官方文档提示遇到问题应反馈。
  • both是迁移专用的临时过渡态,长期停留在该状态仍可能出现 CID 重复。
  • 调整身份相关标签配置时,Operator 与 Agent 都要重启才会生效,缺一不可。
  • 完整说明以 Documentation/network/kubernetes/identity-management-mode.rst 为准;指标定义见 Documentation/observability/metrics.rst。

【免费下载链接】ciliumeBPF-based Networking, Security, and Observability项目地址: https://gitcode.com/GitHub_Trending/ci/cilium

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询