适用于裸金属的 Distributed Cloud(纯软件)概览

Google Distributed Cloud 是一种全代管式软件和硬件解决方案,可将Google Cloud 基础设施和服务扩展到您的数据中心。Google Distributed Cloud 还以纯软件产品的形式提供,可在您自己的硬件上运行。Google Distributed Cloud 软件可安装在 VMware 或裸金属上。 本指南适用于直接在裸机机器上运行的 Google Distributed Cloud 软件。

Google Distributed Cloud 软件基于 Google Kubernetes Engine (GKE),具有自己的 Kubernetes 软件包,可扩展 GKE 以在本地环境中使用。借助 Google Distributed Cloud,您可以在本地创建、管理和升级 GKE 集群,同时还能使用Google Cloud 功能,并使用 Google 的基础设施在集群上大规模部署和运行容器化应用。

为什么使用适用于裸金属的 Distributed Cloud 纯软件?

在现有企业基础设施上运行 Distributed Cloud 裸金属纯软件,可提供直接硬件访问、企业级安全性和跨环境集中管理。

直接硬件控制和性能

直接在物理服务器上部署可让您直接控制应用规模、延迟时间和性能,同时通过使用现有基础设施来降低成本。Google Distributed Cloud 在现有的企业数据中心内管理应用部署和健康状况,以实现更高效的运营。您可以针对专用硬件类型(例如 GPU 和 SSD)优化工作负载,并在网络边缘运行低延迟应用,而无需承担 hypervisor 开销。

操作系统级安全

由于您可以直接控制节点操作系统和网络配置,因此可以自定义安全政策以满足合规性要求。集群通过轻量级安全连接与 Google API 通信,从而消除虚拟机复杂性,同时保留现有的安全控制。

集中管理和监控

使用 Cloud Monitoring 和 Connect Agent 从Google Cloud 控制台管理、监控集群并排查其问题。这种集中式可见性有助于您在分布式数据中心内保持可靠性并调整应用规模。

企业可靠性和运营

Google Distributed Cloud 包含可用于生产用途的运维功能:

  • 高可用性:支持多个控制平面节点,可确保即使节点发生故障,您也可以管理环境。
  • 自动预检检查:内置验证功能有助于在安装前验证硬件和操作系统配置。
  • 集成式负载均衡:在创建集群期间,系统会自动部署第 4 层和第 7 层负载均衡机制。
  • 数据库维护:自动碎片整理 (etcddefrag) 可回收存储空间,以维护 etcd 的健康状况和稳定性。

工作原理

在 Google Cloud中运行的 GKE 集群中,Google 负责管理 Kubernetes 控制平面和网络基础设施。对于在数据中心内运行的 Google Distributed Cloud 集群, Google Cloud 提供了管理和控制平面软件,您可以在物理 Linux 服务器上下载并安装这些软件。您可以在 Google Cloud 中将这些本地集群与基于云的集群作为统一舰队的一部分进行管理。

下图展示了包含管理员集群和用户集群的已完成安装的架构:

管理员集群和用户集群部署的基本架构
裸金属上具有一个管理员集群和一个用户集群的 Google Distributed Cloud 架构

关键组件

纯软件裸机部署由以下组件组成:

  • 管理员集群:使用 Kubernetes 资源管理 (KRM) 管理用户集群的生命周期。标准部署包含一个管理员集群,它管理一个或多个用户集群的生命周期。管理员集群由一个或多个用作控制平面节点的物理 Linux 机器组成。安装中的每个节点机器都有自己的 IP 地址。
  • 用户集群:运行容器化工作负载。每个用户集群至少包含一个控制平面节点和一个工作器节点。
  • 管理员工作站:托管配置文件和管理工具的专用机器:
    • bmctl:创建、更新和管理集群。
    • kubectl:与管理员集群和用户集群交互,并管理工作负载。
  • GKE On-Prem API:用于集群生命周期管理的 Google Cloud托管 API。借助 Google Cloud 控制台、Google Cloud CLI 和 Terraform 等客户端,您无需登录管理员工作站即可管理本地集群。
  • Google Cloud 控制台:为您的 Google Cloud项目(包括本地集群)提供网页界面。 Google Cloud 控制台会显示有关集群的关键指标,可帮助您监控集群健康状况和舰队状态。
  • 虚拟 IP 地址 (VIP):在安装期间配置的虚拟 IP。集群管理员和开发者使用 kubectl 通过控制平面 VIP 访问集群控制平面。应用用户和开发者分别使用 Service 和 Ingress VIP 访问和公开工作负载。

连接到舰队

用户集群和可选的管理员集群会注册到舰队,舰队是 Kubernetes 集群的逻辑分组,可提供跨环境的统一管理。借助舰队,您的组织可以加强对各个集群以及整个集群组的管理,您的团队也可以采用 Google 所用的类似最佳实践。您可以在Google Cloud 控制台中集中查看集群,并使用支持舰队的功能大规模管理、控制和操作工作负载。

每个集群都通过 Connect Agent 连接到 Google Cloud ,该代理会在集群安装期间自动部署。舰队成员资格还决定了 Google Distributed Cloud 的结算。

价格

使用 Google Distributed Cloud 创建的本地集群会按 vCPU 计费。如需启用结算功能,请在 Google Cloud项目中启用 Anthos API。

如需了解价格详情和销售联系信息,请参阅 Google Kubernetes Engine 价格。

版本

如需了解 Google Distributed Cloud 版本,请参阅版本支持政策。

本文档涵盖所有受支持的 Google Distributed Cloud 版本。在相关情况下,Google 也会在本文档中保留有关不受支持的旧版本的有限信息。文档中会说明要求和行为方面各版本的差异。当新功能推出时,文档会记录该功能支持的版本。

如需查看支持的次要版本和可用补丁的列表,请参阅版本控制。

从 1.29 版本开始,我们不再为之前的次要版本文档创建编号目录。您可以通过在以下网址中添加次要版本号来查找 1.16 版及更早版本的归档文档:

https://cloud.google.com/anthos/clusters/docs/bare-metal/VERSION/

将 VERSION 替换为 1.0 到 1.16 之间的次要版本,并将该网址复制到浏览器的地址栏中。

安装适用于裸金属的 Distributed Cloud 纯软件

由于使用 Google Distributed Cloud 创建的集群在您自己的基础设施中运行,因此您可以灵活地配置它们。选择满足您的特定组织和应用场景需求的部署模型后,您可以从一系列受支持的负载均衡模式、IP 寻址选项、安全功能、连接选项等中进行选择。设置集群需要在安装前和安装期间做出决策。本文档集中的指南可帮助您的团队确定适合的功能和选项。为了确保您的安装满足组织的需求,请咨询您的网络和应用团队。

您的数据的存储位置

当您运行 Distributed Cloud 裸金属纯软件时,您的集群、应用和商家数据会保留在您的数据中心内。默认情况下,Google Distributed Cloud 会向 Google Cloud发送有关集群的信息(例如其设置、健康状况和使用情况),但不会发送应用数据。

保留在数据中心内的数据

以下数据会保留在您的数据中心内:

  • 容器、Pod、PersistentVolume、本地存储后端以及应用处理的数据。
  • 控制平面(kube-apiserver、kube-scheduler 和 kube-controller-manager)以及存储所有 Kubernetes 对象的 etcd 数据库。
  • 证书授权机构 (CA) 的私钥,包括集群 CA、etcd CA 和前端代理 CA。管理员集群的用户集群命名空间存储用户集群 CA。
  • 应用 Secret、OAuth 令牌、SSH 私钥、Container Registry 凭据和服务账号密钥文件存储在 etcd 或管理员工作站中。它们不会发送到 GKE On-Prem API,并且默认诊断快照不包含集群凭据。
  • 集群配置文件存储在管理员工作站上。 如果集群已在 GKE On-Prem API 中注册,则会发送一些设置。如需了解详情,请参阅发送到 Google Cloud的数据。
  • 仅当您在控制平面节点上关闭 Cloud Audit Logs 时,审核日志才会写入磁盘。
  • 如果您为诊断快照上传设置了服务账号,则文件会上传到 Cloud Storage。您可以选择是否与 Cloud Customer Care 共享快照。

发送到 Google Cloud的数据

下表显示了系统会发送哪些信息、如何使用和存储这些信息,以及您是否可以关闭此功能:

数据 发送的内容 使用和存储 默认
连接和舰队注册
(gkehub.googleapis.com, gkeconnect.googleapis.com)
  • Google Cloud 项目、舰队成员资格名称、集群 UID、公钥、Kubernetes 版本、集群大小和身份提供方配置。
  • 您通过 Google Cloud 控制台或 Connect 网关请求的 Kubernetes 数据。
  • 如果您从Google Cloud 控制台登录,则会在您的用户个人资料中存储您的加密 Kubernetes 令牌,直到您退出登录。
通过Google Cloud 控制台、Connect 网关和舰队使用 Connect Agent 管理集群。 必需
集群设置和状态
(gkeonprem.googleapis.com)
  • 名称、UID、说明、注释、版本、生命周期状态、控制平面 VIP 和端口。
  • 节点池名称、节点 IP 地址、Pod 和 Service CIDR、负载均衡器 VIP 和地址池、BGP 对等 IP 地址和 ASN、代理网址、本地存储路径。
  • 集群管理员的电子邮件地址。
让您可以使用 Google Cloud 控制台、Google Cloud CLI 或 Terraform 管理集群。由 GKE On-Prem API 存储在 gkeOnPremAPI.location 中设置的区域(默认为 clusterOperations.location)。 在 1.16 版及更高版本中,如果您的 Google Cloud 项目中启用了 GKE On-Prem API,则开启。如需关闭此功能,请将 gkeOnPremAPI.enabled 设置为 false。
结算用量
(anthos.googleapis.com)
vCPU 容量、节点数和许可使用权状态。 用于计量、结算和许可检查。 必需。结算记录会在服务中断期间进行缓冲,并在稍后发送。
系统健康数据
(logging.googleapis.com、monitoring.googleapis.com、opsconfigmonitoring.googleapis.com)
  • 指标:CPU、内存、磁盘和网络使用情况、kubelet 指标以及节点和系统 Pod 的 kube-state-metrics。
  • 日志:来自所有管理员集群组件以及用户集群中 kube-system、gke-system、gke-connect、istio-system、config-management-system、knative-serving、monitoring-system、gatekeeper-system 和 cnrm-system 命名空间的容器日志和健康检查结果。
  • 元数据:节点、Pod、Deployment 和 Service 的名称和标签。
用于 Cloud Monitoring、 Google Cloud 控制台状态视图和客户服务问题排查。存储在 clusterOperations.projectID 中设置的 Google Cloud 项目中。指标存储在 clusterOperations.location 中设置的区域中,日志遵循日志路由器设置。 开启系统日志和指标,这是获得完整客户服务支持和 SLA 覆盖范围所必需的。对于应用日志和指标,处于关闭状态,除非您在 Stackdriver 资源中将 enableCloudLoggingForApplications 或 enableGMPForApplications 设置为 true。
审核日志
(anthosaudit.googleapis.com)
管理员活动审核日志 (audit-proxy):谁通过 kube-apiserver 更改了什么内容,以及更改时间。条目包括时间、集群、主机或虚拟机、用户或服务账号、RBAC 角色、操作和结果。系统不会记录读取请求。 存储在 Google Cloud 项目的 Cloud Audit Logs 中的 _Required 存储桶中,并保留 400 天。 开启。如需关闭此功能,请将 clusterOperations.disableCloudAuditLogging 设置为 true。 然后,审核日志仅保留在控制平面节点的磁盘上。

后续步骤

如需开始使用 Google Distributed Cloud,请参阅以下指南: