Argo CD 与 Kubernetes 资源关系简述

Argo CD 是一个 Kubernetes 持续交付工具,它以可视化的方式展示和管理 K8s 集群中的各种资源。在 Argo CD 的应用树(App Tree)中,常见的节点包括 Ingress(ing)、Service(svc)、Deployment(deploy)、ReplicaSet(rs)和 Pod 等,它们共同构成了服务的完整生命周期管理链路。

// 外部流量
        +---------+
        |  User   |
        +----+----+
             |
             v
        +---------+
        | Ingress |
        +----+----+
             |
             v
        +---------+
        | Service |
        +----+----+
             |
             v
        +-------------+
        | Deployment  |
        +------+------+ 
               |
      +--------+--------+
      |                 |
+-----------+     +-----------+
|ReplicaSet1| ... |ReplicaSetN|
+-----+-----+     +-----+-----+
      |                 |
   +--+--+           +--+--+
   |Pod1| ...        |PodM|
   +----+            +----+

主要资源及其作用:

  • Ingress(ing):负责 HTTP/HTTPS 路由,将外部流量引入集群,并转发到内部的 Service。
  • Service(svc):提供服务发现和负载均衡,将流量分发到后端的 Pod 上。
  • Deployment(deploy):管理一组 Pod 的副本,支持滚动升级、回滚和扩缩容,确保服务高可用。
  • ReplicaSet(rs):由 Deployment 管理,负责维持指定数量的 Pod 副本,实际控制 Pod 的创建和删除。
  • Pod:实际运行应用容器的最小单元。

资源关系与请求流转:

  1. 外部请求首先到达 Ingress。
  2. Ingress 根据路由规则将请求转发到对应的 Service。
  3. Service 再将流量分发到后端的 Pod(通常由 Deployment 管理)。
  4. Deployment 通过 ReplicaSet 管理 Pod 的副本数和版本,确保服务的持续可用和升级。
  5. Pod 处理请求并返回响应。

在 Argo CD 的应用树中,这些资源以层级结构展示,清晰反映了它们之间的依赖和管理关系。Deployment 是服务进程的核心管理者,ReplicaSet 负责具体的 Pod 副本维护。每次 Deployment 升级时,会生成新的 ReplicaSet,旧的 ReplicaSet 可能会暂时保留以支持回滚。

关于 ReplicaSet 和 Pod 的实际运行关系:

  • 同时存在多个 ReplicaSet 时,只有那些下方实际包含 Pod 节点的 ReplicaSet,才表示当前有服务实例在运行,承担流量或待回收。
  • 没有 Pod 的 ReplicaSet 说明其管理的 Pod 已被删除,该 ReplicaSet 处于空闲或即将被清理状态。

总结:Argo CD 通过可视化的资源树,帮助用户理解和管理 Kubernetes 中各类资源的关系与状态。Ingress 负责流量入口,Service 负责分发,Deployment/ReplicaSet/Pod 负责服务的部署与运行,层层协作,保障服务的高效与稳定。

--end--

posted @ 2025-09-05 12:18  ffl  阅读(8)  评论(0)    收藏  举报