花拾录
← 返回知识库

Kubernetes 核心概念梳理:Pod、Deployment 与 Service 的关系

云计算 / 运维AI2026/09/220 阅读0 评论

引言

在 Kubernetes(K8s)中,Pod、Deployment 和 Service 是最核心的三个概念。它们共同协作,实现了应用的部署、伸缩和访问。理解它们之间的关系,是掌握 K8s 的关键一步。

Pod:最小的部署单元

Pod 是 Kubernetes 中可创建和管理的最小计算单元。一个 Pod 可以包含一个或多个容器(如 Docker 容器),这些容器共享网络命名空间、存储卷和生命周期。

  • 特点:Pod 内的容器可以通过 localhost 互相通信,共享挂载的存储。
  • 使用场景:通常一个 Pod 运行一个主容器,也可搭配辅助容器(如日志收集、代理)。
  • 注意:Pod 是临时的,一旦被删除或节点故障,就不会自动恢复。

Deployment:管理 Pod 的副本与更新

Deployment 是用于管理 Pod 副本集(ReplicaSet)的高级控制器。它定义了 Pod 的期望状态(如镜像版本、副本数量),并确保实际状态与之匹配。

  • 核心功能:
    • 创建和伸缩 ReplicaSet(进而管理 Pod 副本)。
    • 滚动更新:逐步替换旧 Pod,实现零停机部署。
    • 回滚:如果更新失败,可以快速回退到之前的版本。
  • 关系:Deployment 管理 ReplicaSet,ReplicaSet 管理 Pod。你通常不直接创建 Pod,而是通过 Deployment 来声明式地管理。

Service:为 Pod 提供稳定访问入口

Pod 的 IP 地址是动态的,当 Pod 重建或伸缩时,IP 会变化。Service 定义了一组 Pod 的逻辑集合和访问策略,为这些 Pod 提供一个稳定的虚拟 IP(ClusterIP)和 DNS 名称。

  • 类型:
    • ClusterIP:集群内部访问(默认)。
    • NodePort:通过每个节点的静态端口暴露服务。
    • LoadBalancer:使用云厂商的负载均衡器对外暴露。
  • 与 Pod 的关系:Service 通过标签选择器(Label Selector)匹配一组 Pod,并将流量负载均衡到这些 Pod 上。

三者协作关系

  1. Deployment 创建和管理 Pod:你定义一个 Deployment,指定容器镜像和副本数。Deployment 会创建 ReplicaSet,再由 ReplicaSet 创建并维护指定数量的 Pod。
  2. Service 暴露 Pod:你创建一个 Service,通过标签选择器选中 Deployment 管理的 Pod。Service 会为这些 Pod 提供统一的访问入口和负载均衡。
  3. 动态维护:当 Deployment 滚动更新时,旧的 Pod 被替换,新的 Pod 被创建。Service 会自动将流量路由到新的 Pod,因为它的选择器是基于标签的,不依赖具体 IP。

总结

  • Pod:最小运行单元,包含一个或多个容器。
  • Deployment:管理 Pod 的副本和更新,确保应用始终处于期望状态。
  • Service:为 Pod 提供稳定的网络访问和负载均衡。

三者结合,实现了应用的高可用、可伸缩和易管理。理解它们的关系,有助于你更好地设计和运维 Kubernetes 集群。

评论(0)

  • 还没有评论,来抢沙发~

相关文章