GKE 集群架构


本页面介绍 Google Kubernetes Engine (GKE) 集群的架构。您的容器化 Kubernetes 工作负载都在 GKE 集群中运行。

GKE 集群由控制平面和称为节点的工作器机器组成。控制平面和节点构成 Kubernetes 集群编排系统。GKE Autopilot 管理集群的整个底层基础架构,包括控制平面、节点和所有系统组件。 如果您使用 GKE Standard 模式,则 GKE 会管理控制平面和系统组件,而您管理节点。 下图显示了 GKE 集群的架构:

GKE 集群架构。控制平面由 GKE 管理,并运行 API 服务器、资源控制器、调度器和集群存储。这些节点在 Autopilot 模式下由 GKE 管理,在标准模式下由用户管理。用户 Pod 在节点中运行容器。可以使用其他 Google Cloud 服务与 GKE 集成。

关于控制平面

控制平面运行 Kubernetes API 服务器、调度器和核心资源控制器等进程。GKE 管理从集群创建到删除的控制平面生命周期。其中包括对控制平面上运行的 Kubernetes 版本的升级。该升级将由 GKE 自动执行;如果您希望提前升级,而不按计划自动升级,可以请求手动执行。

控制平面和 Kubernetes API

控制平面是集群的统一端点。您可以通过 Kubernetes API 调用与控制平面进行交互。控制平面运行 Kubernetes API 服务器进程 (kube-apiserver) 以处理 API 请求。您可以通过以下方式进行 Kubernetes API 调用:

  • 直接调用:HTTP/gRPC
  • 间接调用:Kubernetes 命令行客户端(例如 kubectl)或 Google Cloud 控制台。

API 服务器进程是集群所有通信的中心。所有内部集群组件(如节点、系统进程和应用控制器)都充当 API 服务器的客户端。

您的 API 请求告诉 Kubernetes 集群中对象的所需状态。Kubernetes 会尝试持续维持该状态。Kubernetes 支持您以命令方式或声明方式配置 API 中的对象。

如需详细了解 Kubernetes 中的对象管理,请参阅以下页面:

控制平面与节点的交互

控制平面管理集群的所有节点上运行的内容。控制平面安排工作负载并管理工作负载的生命周期、扩缩和升级。此外,控制平面还会管理这些工作负载的网络和存储资源。控制平面和节点使用 Kubernetes API 相互通信。

控制平面与 Artifact Registry 的互动

当您创建或更新集群时,GKE 会从 pkg.dev Artifact Registry 或 gcr.io Container Registry 中拉取控制平面和节点上运行的 Kubernetes 系统软件的容器映像。如果发生影响这些注册表的中断,以下操作可能会失败:

  • 创建新集群
  • 集群版本升级

即使没有您的干预,也可能导致工作负载中断,具体取决于服务中断的具体性质和持续时间。

如果 pkg.dev Artifact Registry 或 gcr.io Container Registry 服务中断是区域性的,我们可能会将请求重定向到不受服务中断影响的可用区或区域。

如需查看 Google Cloud 服务的状态,请转到 Google Cloud 状态信息中心

关于节点

节点是运行容器化应用和其他工作负载的工作器机器。各个机器是 GKE 创建的 Compute Engine 虚拟机 (VM)。控制平面管理和接收每个节点自我报告状态的更新。

节点运行支持容器(容器构成了集群的工作负载)所必需的服务。这些服务包括运行时和 Kubernetes 节点代理 (kubelet);该节点代理会与控制平面通信,并负责启动和运行被调度到该节点上的容器。

GKE 还运行多个系统容器,这些容器作为每个节点的代理(称为 DaemonSet)运行,可提供日志收集和集群内网络连接等功能。

节点管理因集群操作模式而异,如下所示:
节点组件 AutoPilot 模式 标准模式
Lifecycle

由 GKE 完全托管,包括:

GKE 管理以下各项:

您可以管理以下各项:

公开范围 使用 kubectl 查看节点。无法通过 gcloud CLI 或 Google Cloud 控制台查看或访问的底层 Compute Engine 虚拟机。 使用 kubectl、gcloud CLI 和 Google Cloud 控制台查看节点。查看和访问底层 Compute Engine 虚拟机。
连接 不直接连接至底层虚拟机。 使用 SSH 连接至底层虚拟机。
节点操作系统 (OS) 由 GKE 管理。 所有节点都使用包含 containerd 的 Container-Optimized OS (cos_containerd) 为节点选择操作系统
机器硬件选择

根据用例请求 Pod 中的计算类

GKE 管理机器配置、调度、数量和生命周期。

创建节点池时选择并配置 Compute Engine 机器类型。根据需要配置大小调整、扩缩、数量、调度和位置的设置。