Google Distributed Cloud 是一种全代管式软件和硬件解决方案,可将Google Cloud 基础设施和服务扩展到您的数据中心。Google Distributed Cloud 有两种配置:连接配置和经过网闸隔离配置,这两种配置均可在 Google 提供的硬件上运行。Google Distributed Cloud 还以纯软件产品的形式提供,可在您自己的硬件上运行,支持 VMware 或裸机。本指南适用于在 VMware vSphere 环境中的您自己的硬件上运行的 Google Distributed Cloud 软件。
Google Distributed Cloud 基于 Google Kubernetes Engine (GKE),具有自己的 Kubernetes 软件包,可扩展 GKE 以在本地环境中使用。借助 Google Distributed Cloud,您可以在本地创建、管理和升级 GKE 集群,同时还能使用Google Cloud 功能,并使用 Google 基础设施在集群上大规模部署和运行容器化应用。
安装 Google Distributed Cloud 软件后,您可以使用许多Google Cloud 功能来大规模治理、管理和运维容器化工作负载。如需详细了解 VMware 上提供的功能,请参阅 GKE 概览。
本页面简要介绍了 Google Distributed Cloud 在 VMware 上的工作原理,为您提供在进行最低限度或生产安装之前所需的信息。
工作原理
Google Distributed Cloud 扩展了 GKE,让您可以在自己的场所内在 vSphere 环境中创建 GKE 集群,并在 Google Cloud 中将它们与常规 GKE 集群以及其他环境中的集群一起作为舰队的一部分进行管理。
由于 Google Distributed Cloud 软件在您的数据中心内运行,而不是在Google Cloud上运行,因此除了 GKE 软件本身之外,您还需要安装一些管理员和控制平面软件。系统会在安装和升级过程中下载在数据中心内运行的软件。
下图显示了已完成安装的简化结果。
关键组件
Google Distributed Cloud 的 VMware 纯软件安装包括以下组件:
用户集群是实现应用的工作负载运行的地方,例如 GKE on Google Cloud。运行工作负载的节点称为工作器节点。用户集群还具有一个或多个控制平面节点。在上图中,用户集群有一个控制平面节点。
管理员集群可管理一个或多个用户集群。在上图中,管理员集群有三个控制平面节点。
管理员工作站是一个单独的机器,其中包含集群创建者和开发者管理其安装所需的工具:
- 通过从管理员工作站运行
gkectl,您可以创建和更新集群并执行一些其他管理任务。 - 通过从管理员工作站运行
kubectl,您可以与管理员集群和用户集群交互,包括部署和管理工作负载。
- 通过从管理员工作站运行
Google Cloud 控制台为您的 Google Cloud 项目(包括 VMware 上的集群)提供网页界面。作为在管理员工作站上运行命令的替代方法,您可以从 Google Cloud 控制台执行部分管理任务,包括集群创建。
集群管理员和开发者使用
kubectl和虚拟 IP 地址 (VIP) 访问管理员集群和用户集群中的控制平面。您可以在创建集群期间配置 VIP。在用户集群中调用工作负载的用户和开发者使用 Service 和 Ingress VIP 地址。安装中的每个节点也有自己的 IP 地址。您可以参阅规划您的 IP 地址,详细了解 Google Distributed Cloud 的 IP 规划。
连接到舰队
所有 Google Distributed Cloud 集群都是舰队(Kubernetes 集群的逻辑分组)的成员。借助舰队,您的组织可以加强对各个集群以及整个集群组的管理,您的团队也可以采用 Google 所用的类似最佳实践。您可以在 Google Cloud 控制台中同时查看和管理舰队集群,并使用启用舰队的功能来帮助您大规模管理、控制和操作工作负载。您可以查看本地环境的可用舰队功能的完整列表。
每个舰队集群与 Google Cloud 的连接都由 Connect Agent 管理,Connect Agent 会在 Google Distributed Cloud 安装过程中部署。您可以查看 Connect Agent 概览,详细了解此代理的工作原理。
舰队成员资格还用于管理 Google Distributed Cloud 价格,如下一部分所述。
价格
作为 Google Distributed Cloud 的一部分在本地创建的 GKE 集群会按 vCPU 计费。您可以通过在 Google Cloud 项目中启用 Anthos API 来启用结算功能。
如需了解完整价格信息(包括如何与销售人员联系),请参阅 GKE 价格。
在 VMware 上安装 Google Distributed Cloud
由于 Google Distributed Cloud 软件在您自己的基础设施中运行,因此您可以灵活地配置它,以满足您的特定组织和应用场景需求:您可以从一系列受支持的负载均衡模式、vSphere 配置、IP 寻址选项、安全功能、连接选项等中进行选择。这意味着,设置 Google Distributed Cloud 需要在安装前和安装期间与您的网络、vSphere 和应用团队协商做出决定,以确保您的安装满足您的需求。本文档集提供了有助于您的团队做出这些决策的指南。
但是,如果您只需查看 Google Distributed Cloud 的实际应用,我们也为小型测试安装提供了基本的安装途径,为您执行了许多选择,以便您快速启动并运行工作负载。
对于每种情况,安装过程如下所示:
- 规划您的安装。这至少包括确保您可以满足 Google Distributed Cloud 的资源和 vSphere 要求以及规划 IP 地址。
- 设置本地环境以支持 Google Distributed Cloud,包括设置 vSphere 资产清单对象以及与 Google 的连接。
- 设置 Google Cloud 资源,包括在设置和管理 Google Distributed Cloud 时使用的 Google Cloud 项目。
- 使用创建集群所需的资源和工具创建管理员工作站。
- 创建管理员集群以创建、管理和更新用户集群。
- 创建用户集群以运行实际工作负载。
支持的版本
本文档涵盖所有受支持的 Google Distributed Cloud 版本。在相关情况下,我们还会在本文档中保留有关不受支持的旧版本的有限信息。文档中会说明要求和行为方面各版本的差异。同样,当新功能推出时,文档会记录该功能支持的版本。
如需查看支持的次要版本和可用补丁的列表,请参阅版本控制。
从 1.29 版本开始,我们不再为之前的次要版本创建目录。文档中会说明行为方面的差异。 同样,当新功能推出时,文档会记录该功能支持的版本。
您可以通过在以下网址中添加次要版本号来查找早期版本的完整文档:
https://cloud.google.com/anthos/clusters/docs/on-prem/VERSION/
将 VERSION 替换为 1.0 到 1.16 之间的次要版本,并将该网址复制到浏览器的地址栏中。
您的数据的存储位置
当您运行 Distributed Cloud for VMware(纯软件)时,您的集群、应用和商家数据会保留在您的数据中心内。默认情况下,Google Distributed Cloud 会发送 Google Cloud 有关集群的信息(例如其设置、健康状况和使用情况),但不会发送应用数据。
保留在数据中心内的数据
以下数据会保留在您的数据中心内:
- 容器、Pod、PersistentVolume 以及应用处理的数据。
- 所有 Kubernetes 对象都存储在控制平面和
etcd数据库中。 - 管理员集群的控制平面存储自签名
etcd私钥、用户集群密钥和集群证书授权机构 (CA)。 - 应用 Secret、OAuth 令牌、SSH 私钥、Container Registry 凭据、vCenter 和 F5 BIG-IP 凭据以及服务账号密钥文件,存储在
etcd或管理员工作站中。它们不会发送到 GKE On-Prem API,并且会从诊断快照中移除。 - 管理员集群、用户集群和凭据配置文件存储在管理员工作站上。
- 审核日志会写入管理员集群控制平面节点和用户集群上的磁盘。
- 您可以选择将诊断快照上传到 Cloud Storage。
发送到 Google Cloud的数据
下表显示了系统会发送哪些信息、如何使用和存储这些信息,以及您是否可以关闭此功能:
| 数据 | 发送的内容 | 使用和存储 | 默认 |
|---|---|---|---|
| 连接和舰队注册 ( gkehub.googleapis.com,
gkeconnect.googleapis.com) |
|
通过Google Cloud 控制台、Connect 网关和舰队以及 Connect Agent 管理集群。kube-apiserver 会对每个请求进行身份验证、授权和审核日志记录。 |
必需 |
| 集群设置和状态 ( gkeonprem.googleapis.com) |
|
让您可以使用 Google Cloud 控制台、Google Cloud CLI 或 Terraform 管理集群。GKE On-Prem API 会将这些数据存储在 gkeOnPremAPI.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) |
|
用于 Cloud Monitoring、 Google Cloud 控制台状态视图和客户服务问题排查。存储在 stackdriver.projectID 中设置的 Google Cloud 项目中。指标存储在 stackdriver.clusterLocation 区域中,日志遵循您的日志路由器设置。 |
开启系统日志和指标,这是获得完整客户服务支持和 SLA 覆盖范围所必需的。对于应用日志和指标,关闭,除非您在 Stackdriver 资源中将 enableCloudLoggingForApplications 或 enableGMPForApplications 设置为 true。 |
| 审核日志 ( anthosaudit.googleapis.com) |
管理员活动审核日志:谁在何时通过 kube-apiserver 更改了什么。条目包括时间、集群、主机或虚拟机、用户或服务账号、RBAC 角色、操作和结果。系统不会记录读取请求。 |
存储在cloudAuditLogging.projectID中设置的 Google Cloud 项目的 Cloud Audit Logs 中,位于 _Required 存储桶中,并保留 400 天。 |
可选。如需启用,请填写 cloudAuditLogging 部分。对于管理员集群,您只能在创建时启用该功能。如需为用户集群停用此功能,请删除该部分并更新集群。 |