GKE on AWS 架构

概览

GKE on AWS 是一款混合云软件,可将 Google Kubernetes Engine (GKE) 扩展到 Amazon Web Services (AWS)。

GKE on AWS 使用常规 AWS 资源,例如 Elastic Compute Cloud (EC2)Elastic Block Storage (EBS)Elastic Load Balancer (ELB)。 GKE on AWS 创建的大多数 AWS 资源的名称以 gke- 开头。

架构

GKE on AWS 有两个组件。

  1. 管理服务:一种可以安装和更新用户集群的环境,使用 AWS API 预配资源。
  2. 用户集群:运行工作负载。

本主题介绍 Anthos 管理服务和用户集群的用途和架构。

GKE on AWS 安装的架构,显示管理服务和包含控制平面和 AWSNodePool 的 AWSCluster

管理服务

管理服务提供和管理 GKE on AWS 安装的组件。例如,您可以使用管理服务创建用户集群。管理服务使用 AWS API 预配资源。

您可以在专用 AWS VPC现有 AWS VPC 中创建管理服务。

运行 GKE on AWS 的每个 AWS Virtual Private Cloud (VPC) 中都需要一个管理服务。管理服务安装在一个 AWS 可用性区域中。您只需为每个 VPC 设置一个管理服务;一个管理服务可以管理多个用户集群。

管理服务的主要组件是集群运算符。集群 Operator 是一种 Kubernetes Operator,用于创建和管理 AWSCluster 和 AWSNodePool。集群运算符将配置存储在 etcd 数据库中,存储永久保存在 AWS EBS 卷中。

安装和配置管理服务

本部分介绍可用于管理您的管理服务的工具。

anthos-gke 工具

您可以使用 anthos-gke 命令行工具创建和管理集群。如需了解详情,请参阅 anthos-gke 工具

连接

借助 Connect,您可以从 Google Cloud Console 的同一界面中查看和登录 Google Cloud 上的 GKE on AWS 和 GKE 集群。所有资源都显示在一个信息中心中,因此您可以查看多个 Kubernetes 集群中的工作负载。

用户集群

用户集群包含两个组件,这两个组件都是管理服务托管的 Kubernetes 自定义资源:

  1. 控制层面。
  2. 一个或多个 AWSNodePool。

AWSCluster

AWSCluster 在单个 VPC 中运行。

将管理集群安装到专用 VPC 中时,GKE on AWS 会在您在 dedicatedVPC.availabilityZones 中指定的每个可用区中创建控制平面副本。将管理集群安装到现有基础设施中时,GKE on AWS 会创建一个包含三个控制平面副本的 AWSCluster,这三个副本位于相同的可用区中。每个副本都属于其各自的 AWS 自动扩缩组,该组会在实例终止后重启实例。

管理服务将控制层面放置在 AWS 网络负载平衡器 (NLB) 后面的专用子网中。管理服务使用 NLB 与控制层面进行互动。

如需跨多个 AWS 可用性区域创建控制平面,请参阅高可用性用户集群

每个控制平面都将配置存储在本地 etcd 数据库中。这些数据库会在堆叠式高可用性拓扑中进行复制和设置。

一个控制平面管理一个或多个 AWSNodePool。

AWSNodePool

AWSNodePool 的功能类似于 Google Cloud 上的 GKE 节点池。节点池是集群中全都具有相同配置的一组节点。节点池使用 AWSNodePool 资源,并且可以包含一个或多个节点。 每个节点池都属于其自己的 AWS 自动扩缩组,该组会在实例终止后重启实例。

问题排查

您可以通过从 AWSCluster 和 AWSNodePool 查看 Kubernetes 事件来排查 GKE on AWS 安装问题。如需了解详情,请参阅问题排查指南。

后续步骤