概览
Ingress for Anthos (Ingress) 是 Anthos GKE 集群的云托管多集群入站流量控制器。它是 Google 托管的一项服务,支持跨集群和区域部署共享的负载平衡资源。
多集群网络
很多因素都有助于多集群拓扑,包括应用离用户很近、集群和区域的高可用性、安全性和组织隔离、集群迁移以及数据本地化。这些用例很少孤立出现。随着使用多集群的理由变多,使用按产品分类的正式多集群平台的需求变得更加迫切。
Ingress for Anthos 旨在满足多集群、多区域环境的负载平衡需求。它是外部 HTTP(S) 负载平衡器的控制器,可为一个或多个集群中来自互联网的流量提供入站流量。
Ingress for Anthos 的多集群支持可满足许多使用场景的需求,其中包括:
应用的单个一致虚拟 IP (VIP),与应用的全球部署位置无关。
通过运行状况检查和流量故障转移实现的多区域、多集群可用性。
通过公共任播 VIP 实现的基于邻近度的路由,可缩短客户端延迟时间。
透明的集群迁移,用于升级或集群重建。
Ingress for Anthos 的工作原理
Ingress for Anthos 是在外部 HTTP(S) 负载平衡的架构基础上构建的。HTTP(S) 负载平衡是一个全球分布式负载平衡器,全球 100 多个 Google 接入点 (PoP) 都部署了其代理。这些代理位于 Google 网络的边缘,靠近客户端。负载平衡器 VIP 以任播 IP 地址的形式通告。来自客户端的请求会被冷土豆式路由到 Google PoP,这意味着互联网流量会流向最近的 PoP,并尽快到达 Google 骨干网络。
通过在边缘终止 HTTP 和 HTTPS 连接,Google 负载平衡器可在流量进入数据中心或区域之前确定后端可用性,从而确定路由流量的位置。这样可让流量采用最高效的路径从客户端传入后端,同时还能兼顾后端的运行状况和容量。
Ingress for Anthos 是一款入站流量控制器,它使用网络端点组 (NEG) 对外部 HTTP(S) 负载平衡器进行编程。创建 MultiClusterIngress 资源时,GKE 会部署 Compute Engine 负载平衡器资源,并在各个集群中将相应的 Pod 配置为后端。NEG 用于动态跟踪 Pod 端点,以便 Google 负载平衡器拥有一组正常运行的适当后端。
在 GKE 的各集群中部署应用时,Ingress for Anthos 可确保负载平衡器与集群中发生的以下事件同步:
使用适当的匹配标签创建 Deployment。
Pod 的进程终止且运行状况检查失败。
从后端池中移除集群。
Ingress for Anthos 会更新负载平衡器,使其保持一致。
Ingress for Anthos 架构
Ingress for Anthos 在集群外部作为服务运行,并由 Google Cloud 进行管理。因此,入站流量控制器会监视 GKE 中的 MultiClusterIngress 和 MultiClusterService 资源,并配置负载平衡器和 NEG。
Ingress for Anthos 包含下面三个组成部分:
Anthos 入站流量控制器 - 这是一个全球分布式控制平面,在集群外部作为服务运行。这样可使控制器的生命周期和操作与 GKE 集群无关。
配置集群 - 这是选定的在 Google Cloud 上运行的 GKE 集群,其中部署了 MultiClusterIngress 和 MultiClusterService 资源。这是这些多集群资源的集中控制点。这些多集群资源存在于单个逻辑 API 中并可通过该 API 供用户访问,从而保持所有集群之间的一致性。入站流量控制器会监视配置集群并协调负载平衡基础架构。
成员集群 - 要通过 Ingress for Anthos 作为后端参与,您必须将每个 GKE 集群注册为成员。注册可让入站流量控制器知道集群,这样该集群就可充当给定 MultiClusterIngress 的后端。
部署工作流
以下步骤演示了在多个集群中使用 Ingress for Anthos 的简要工作流。
1、将 GKE 集群注册为成员集群。
2、将 GKE 集群配置为中央配置集群。该集群可以是专用控制平面,也可以运行其他工作负载。
3、将应用部署到需要运行它们的 GKE 集群。
在配置集群中部署一个或多个 MultiClusterService 资源,它们具有匹配的标签和集群用来选择被视为给定服务的后端的集群、命名空间和 Pod。这会在 Compute Engine 中创建 NEG,进而开始注册和管理服务端点。
在配置集群中部署一个 MultiClusterIngress 资源,它将一个或多个 MultiClusterService 资源引用为负载平衡器的后端。这会部署 Compute Engine 外部负载平衡器资源,并通过单个负载平衡器 VIP 在各集群中公开端点。
Compute Engine 与 Ingress for Anthos 资源之间的映射
下表显示了 Hub 资源与 Kubernetes 集群和 Google Cloud 中创建的资源之间的映射:
文章信息
相关推荐
