本文档介绍了 Google Distributed Cloud (GDC) 气隙环境中提供的 Kubernetes 集群选项和功能。Kubernetes 集群通过 Google Kubernetes Engine (GKE) 提供代管式 Kubernetes 服务,让您可以使用业界标准 Kubernetes 方法部署和运行容器工作负载。
本文档面向平台管理员组中的 IT 管理员和应用运维人员组中的应用开发者等受众,他们负责管理组织内的容器工作负载。如需了解详情,请参阅 GDC 网闸隔离配置文档的受众。
断开连接环境中的 GKE
GKE on GDC 是一项代管式 Kubernetes 服务,可将 GKE 的核心特性和功能引入到断开连接的环境中。为便于文档说明,由 GKE on GDC 管理的集群称为 Kubernetes 集群。如需详细了解 Kubernetes 概念, 请参阅 开始了解 Kubernetes。
借助 GKE on GDC,您可以在 断开连接的环境中创建和管理容器工作负载,就像在 公共 Google Cloud环境中一样。
下表比较了 GDC 中的集群与 Google Cloud:
| 功能 | 说明 | GKE on GDC | GKE on Google Cloud |
|---|---|---|---|
| 完全断开连接 | 可在未连接到互联网的环境中运行。 | 是 | 否 |
| 备份解决方案 | 用于为集群创建数据和配置副本的服务,以确保数据保护并支持从故障、错误或网络攻击中恢复。 | Backup for GDC | Backup for GKE |
| 集成的日志和监控功能 | 将日志收集和分析与监控关键性能指标相结合的服务,可全面了解集群行为。 | Prometheus、Grafana 和 Loki | Cloud Logging 和 Cloud Monitoring |
| 代管式容器注册表 | 用于托管和整理容器映像的服务,可处理映像的基础架构、可用性和安全性。 | 托管 Harbor 服务 | Artifact Registry |
| 容器隔离 | 能够使容器应用及其依赖项彼此分离,并独立于主机系统。 | 是 | 是 |
| 支持 GPU 和 TPU | 高性能计算单元,可增强处理能力。 | 仅限 GPU | GPU 和 TPU |
| Pod 横向自动扩缩 | 根据观察到的指标(例如 CPU 或内存用量)自动调整部署或其他工作负载中的 Pod 副本数量。 | 是 | 是 |
| Linux 容器 | 用于在 Linux 主机上运行应用的隔离环境。 | 是 | 是 |
| 集群界面 | 图形界面,可提供用户友好型可视化方式来管理和监控集群。 | 仅限共享集群 | 是 |
| 集群资源界面 | 图形界面,可提供用户友好型可视化方式来管理和监控集群的容器工作负载。 | 只能查看 | 是 |
如需详细了解 GKE 及其在公共环境中提供的全套功能 ,请参阅 Google Cloud 探索 GKE 文档。
Kubernetes 集群的优势
GKE on GDC 为 Kubernetes 集群提供了以下主要优势:
- 多集群生命周期管理:在 GDC 中同时部署多个集群,为容器工作负载提供各种托管实例 。
- 全面支持各种 Kubernetes 发行版:创建捆绑了 最新标准 Kubernetes 功能的集群。
- 费用可见性:监控实时用量和数据分析,帮助您 持续监控 Kubernetes 费用。
- 多团队管理:让多个用户群组访问 Kubernetes 集群,以实现灵活的管理边界。
- 自动化 Kubernetes 工作流:依靠自动节点预配和 Pod 横向自动扩缩来无缝管理容器工作负载。
所有这些功能都是 GKE on GDC 的标准功能,可用于通过代管式 Kubernetes 服务创建的集群。
GDC 集群架构
Kubernetes 集群在逻辑上彼此分离,以提供不同的故障网域和隔离保证。在某些情况下,它们甚至在物理上也是分离的。
您可以将 Kubernetes 集群配置为共享集群或标准集群。共享集群跨多个项目。标准集群的作用域限定为单个项目。如需了解详情,请参阅 Kubernetes 集群配置。
Kubernetes 集群由控制平面和称为“节点”的工作器机器组成。控制平面和节点构成 Kubernetes 集群编排系统。 GKE on GDC 管理集群的整个底层基础架构,包括控制平面和所有系统组件。您负责管理运行容器化工作负载的工作器节点。
下图显示了 Kubernetes 集群的架构:

此图显示了一个 Kubernetes 集群,其中包含以下组件:
- 控制平面,其中包括 API 服务器和 预定义的服务,例如存储和默认 Pod 调度。
- 运行容器工作负载的工作器节点。
- GDC 服务,例如 VPC 网络 和 负载均衡,由 GKE on GDC 代管式服务提供。
关于控制平面
控制平面运行 Kubernetes API 服务器、调度器和核心资源控制器等进程。GKE on GDC 管理从集群创建到删除的控制平面生命周期。其中包括控制平面上运行的 Kubernetes 版本的升级。GDC 会自动执行这项升级工作,如果您希望在安排的自动升级时间之前进行升级,也可以请求手动执行。
控制平面和 Kubernetes API
控制平面是集群的统一端点。您可以通过 Kubernetes API 调用与控制平面进行交互。控制平面运行 Kubernetes
API 服务器进程(即 kube-apiserver)以处理 API 请求。您可以通过以下方式调用 Kubernetes API:
- 直接调用:KRM
- 间接调用:Kubernetes 命令行客户端,例如 kubectl CLI 或 GDC 控制台。
API 服务器进程是集群所有通信的中心。所有内部集群组件(如节点、系统进程和应用控制器)都充当 API 服务器的客户端。
您的 API 请求告诉 Kubernetes 集群中对象的所选状态。Kubernetes 会尝试持续保持该状态。Kubernetes 支持您以命令方式或声明方式配置 API 中的对象。
工作器节点管理
控制平面会管理集群的所有节点上运行的内容。控制平面安排工作负载并管理工作负载的生命周期、扩缩和升级。此外,控制平面还会管理这些工作负载的网络和存储资源。控制平面和节点使用 Kubernetes API 相互通信。
关于节点
节点是运行容器化应用和其他工作负载的工作器机器。各个机器是 GKE on GDC 创建的虚拟机。控制平面会管理和接收每个节点自行报告的状态更新。
节点运行支持构成集群工作负载的容器所需的服务。这些服务包括运行时和 Kubernetes 节点代理(即 kubelet)。该节点代理会与控制平面通信,并负责启动和运行被调度到该节点上的容器。
GKE on GDC 还运行多个系统容器,这些容器作为每个节点的代理(称为 DaemonSet)运行,可提供日志收集和集群内网络连接等功能。
节点会分组到 节点池 中,节点池是集群内的一组节点 ,这些节点共享相同的配置和特征。您无法在节点池中配置单个节点。
如果您要调度的 Pod 比其他 Pod 需要更多的资源(例如更多内存或本地磁盘空间),则自定义节点池会非常有用。如果您需要更好地控制 Pod 的调度,可以使用 节点污点。
如需了解详情,请参阅 管理节点池。
Kubernetes 集群配置
GKE on GDC 服务提供以下集群配置,以便在组织中管理容器工作负载:
- 共享集群:组织级 Kubernetes 集群,跨 多个项目,不由单个项目管理,而是 附加到这些项目。
- 标准集群:项目级 Kubernetes 集群,用于管理项目内的集群 资源,无法跨多个项目。
您可以选择最符合容器工作负载管理要求的集群。如需了解详情,请参阅 Kubernetes 集群配置。
集群中的 GPU 工作负载
GDC 为 Kubernetes 集群提供 NVIDIA GPU 支持,并且它们将 GPU 设备作为用户工作负载运行。例如,您可能更喜欢在 GPU 环境中运行人工智能 (AI) 和机器学习 (ML) 笔记本。您必须通过为集群预配 GPU 机器来配置集群以支持 GPU 设备。如需查看 GDC 中 Kubernetes 集群支持的机器类型列表,请参阅 集群节点机器。
GPU 是静态分配的。前四个 GPU 始终专用于预训练 AI 和 ML API 等工作负载。这些 GPU 不在 Kubernetes 集群上运行。其余 GPU 可供 Kubernetes 集群使用。AI 和 ML 笔记本在 Kubernetes 集群上运行。
请务必为正确的集群类型分配 GPU 机器,以便 AI 和 ML API 等组件在集群中运行。如需了解详情, 请参阅 创建共享集群 或 创建标准集群。
GKE on GDC 的限制
以下 GKE 功能是 GKE on GDC 不提供的限制:
- 自动化集群管理
- 自动节点修复: GDC 中的 Kubernetes 集群无法在节点运行状况不佳时自动修复 节点。
- 自动集群升级: GDC Kubernetes 集群无法通过新的 Kubernetes 版本更新自动 升级节点。您必须 手动升级集群 才能纳入新的 Kubernetes 更新。
- 集群自动扩缩: GDC 中的 Kubernetes 集群无法根据工作负载需求自动 调整其节点大小。
- GKE Autopilot: GDC 不为 Kubernetes 集群提供全代管式运维模式 来处理基础架构。
- Pod 纵向自动扩缩: GDC Kubernetes 集群中 Pod 的 CPU 和内存请求和限制无法根据工作负载需求自动调整。
- 多云
- 关联多云集群: GDC 无法管理在其他云环境中创建的 Kubernetes 集群。
- Connect 网关: GDC 无法使用您的 Google Cloud 身份连接其他云 提供商的集群以进行身份验证。
- 多集群 Ingress: GDC 中的 Kubernetes 集群无法跨集群共享负载 均衡资源。
- 运维
- 多可用区资源管理: GDC 中的 Kubernetes 集群和容器不会 作为全球性资源跨多个可用区。
- Windows 容器支持: GDC 中的容器应用无法在 Windows 主机上的隔离环境中运行。