Kubernetes 服务究竟是什么以及它们与部署有何不同

Qiu*_*ang 15 kubernetes

在阅读了像这样的 Kubernetes 文档、部署服务这个之后,我仍然不清楚服务的目的是什么。

该服务似乎有两个用途:

  1. 将部署暴露给外界(例如使用 LoadBalancer),
  2. 将一个部署暴露给另一个部署(例如使用 ClusterIP 服务)。

是这种情况吗?那么 Ingress 呢?

- - - 更新 - - -

使用服务将前端连接到后端是服务与部署一起工作的一个很好的例子。

Mal*_*thi 7

服务

一个部署由一个或多个 pod 和 pod 的副本组成。假设我们有 3 个 pod 副本在部署中运行。现在让我们假设没有服务。集群中的其他 Pod 如何访问这些 Pod?通过这些 pod 的 IP 地址。如果我们说其中一个 Pod 发生故障会发生什么。Kunernetes 带来了另一个豆荚。现在这些 pod 的 IP 地址列表发生了变化,所有其他 pod 都需要跟踪相同的情况。启用自动缩放时也是如此。Pod 的数量根据需求增加或减少。为了避免这个问题,服务开始发挥作用。因此,服务基本上是管理部署的 pod ip 列表的程序。

是的,还有关于您在问题中发布的用途。

入口

Ingress 用于为集群中的各种服务提供单一入口点。我们来看一个简单的场景。在您的集群中有两个服务。一个用于 Web 应用程序,另一个用于文档服务。如果您单独使用服务而不是入口,则需要维护两个负载均衡器。这也可能花费更多。为了避免这种情况,入口在定义时位于服务之上,并根据入口中定义的规则和路径路由到服务。