Kubernetes & Argo CD 核心组件全面总结

Kubernetes & Argo CD 核心组件全面总结


1. 核心工作单元

  • Pod(货车)

    • 功能:最小运行单元,一个 Pod 可包含一个或多个容器(如 Nginx + 日志收集容器)。
    • 场景:直接运行你的应用代码。
    • Argo CD 表现:监控每个 Pod 的健康状态(是否崩溃、资源不足)。
  • ReplicaSet(货车调度员)

    • 功能:确保指定数量的 Pod 副本始终运行(自动修复故障)。
    • 场景:维护应用的高可用性(如保持 3 个 Pod)。
    • Argo CD 表现:通常由 Deployment 管理,更新时新旧 ReplicaSet 短暂共存。
  • Deployment(调度中心)

    • 功能:管理 ReplicaSet,支持滚动更新、版本回滚。
    • 场景:部署无状态应用(如 Web 服务)。
    • Argo CD 表现:显示更新历史和同步状态,是应用更新的核心入口。

2. 存储与配置

  • ConfigMap(公告栏)

    • 功能:存储非敏感配置(如环境变量、配置文件)。
    • 场景:动态配置应用(如 Nginx 配置、功能开关)。
    • Argo CD 表现:修改后需重启 Pod 生效。
  • Secret(密码保险箱)

    • 功能:存储敏感数据(如密码、密钥),加密保存。
    • 场景:数据库连接信息、API 密钥。
    • Argo CD 表现:需确保 Secret 正确挂载到 Pod。
  • PersistentVolume(仓库) & PersistentVolumeClaim(租用合同)

    • 功能:为 Pod 提供持久化存储(如数据库文件)。
    • 场景:MySQL、Redis 等需要持久化数据的服务。
    • Argo CD 表现:检查 PVC 是否成功绑定到 PV(存储是否就绪)。

3. 网络与访问

  • Service(客服中心)

    • 功能:为 Pod 提供固定访问入口(IP/域名),负载均衡。
    • 场景:外部用户通过 Service 访问应用。
    • Argo CD 表现:显示 Service 的端口和关联的 Pod。
  • Ingress(智能收费站)

    • 功能:根据域名或路径将外部流量路由到不同 Service。
    • 场景:一个域名服务多个应用(如 example.com/appexample.com/api)。
    • Argo CD 表现:展示路由规则和证书配置。
  • EndpointSlice(客户名单)

    • 功能:动态记录 Service 后端可用的 Pod IP。
    • 场景:Service 自动发现 Pod。
    • Argo CD 表现:通常无需操作,但网络不通时可检查。

4. 特殊工作负载

  • StatefulSet(有编号的货车队)

    • 功能:管理有状态应用,Pod 有唯一标识和持久化存储。
    • 场景:数据库(MySQL、MongoDB)、分布式存储。
    • Argo CD 表现:Pod 名称固定(如 db-0db-1)。
  • DaemonSet(每台机器的保安)

    • 功能:确保每个节点运行一个 Pod。
    • 场景:日志收集(Fluentd)、节点监控(Prometheus Node Exporter)。
    • Argo CD 表现:每个节点自动部署一个 Pod。
  • Job(临时搬运工) & CronJob(定时闹钟)

    • 功能:执行一次性任务或定时任务。
    • 场景:数据迁移、每日备份、批量处理。
    • Argo CD 表现:Job 完成后显示状态,CronJob 显示下次触发时间。

5. 扩展与运维

  • HorizontalPodAutoscaler(自动扩缩容机器人)

    • 功能:根据 CPU/内存等指标自动扩缩 Pod 数量。
    • 场景:应对流量高峰(如促销活动)。
    • Argo CD 表现:显示当前副本数和目标指标。
  • Namespace(部门分区)

    • 功能:逻辑隔离集群资源(如 devprod)。
    • 场景:多环境管理、团队资源隔离。
    • Argo CD 表现:在 UI 中切换命名空间查看不同环境。

6. 权限与安全

  • ServiceAccount(工牌)

    • 功能:为 Pod 分配身份,控制其对集群资源的访问权限。
    • 场景:监控工具需要读取集群指标。
    • Argo CD 表现:权限错误时需检查 ServiceAccount 配置。
  • Role & RoleBinding(通行证)

    • 功能:定义权限(Role)并将权限绑定到身份(RoleBinding)。
    • 场景:限制开发团队只能查看日志,不能删除 Pod。
    • Argo CD 表现:权限不足时会提示错误。
  • NetworkPolicy(网络防火墙)

    • 功能:控制 Pod 之间的网络通信规则。
    • 场景:禁止前端 Pod 直接访问数据库。
    • Argo CD 表现:网络不通时可检查策略是否拦截。

总结

  • 核心流程
    Deployment → 创建 ReplicaSet → 管理 Pod → 通过 Service 暴露 → 由 Ingress 路由外部流量。

  • Argo CD 的作用
    像工厂的监控大屏,可视化所有组件的状态,确保实际运行状态与 Git 仓库中的配置一致。你可以:

    1. 看健康状态:红色故障、黄色警告、绿色正常。
    2. 看同步状态:是否与 Git 代码一致。
    3. 管理版本:回滚 Deployment、清理旧 ReplicaSet。
  • 一句话记忆
    Pod 是干活的,Deployment 是指挥的,Service 是对外的,ConfigMap 是配参数的,Secret 是藏密码的,其他组件各司其职!

你可能感兴趣的:(技术随笔,kubernetes,容器,云原生)