GKE On-Prem 是一款混合云软件,可将 Google Kubernetes Engine (GKE) 引入本地数据中心。借助 GKE On-Prem,您可以在本地环境中创建、管理和升级 Kubernetes 集群,并将这些集群连接到 Google Cloud Console。
了解 Kubernetes
GKE On-Prem 和 GKE 构建在 Kubernetes 之上,Kubernetes 是一个用于管理容器化应用的可扩展开源平台。Kubernetes 对集群进行编排,集群是运行容器化应用的机器(也称为“节点”)集。
获取 GKE On-Prem
GKE On-Prem 是 Anthos 的核心组件之一。
安装 GKE On-Prem 前的准备工作
您将 GKE On-Prem 安装到在本地环境中的硬件上运行的 VMware vSphere 6.5 集群。对于第 4 层负载平衡,您可以选择使用F5 BIG-IP(GKE On-Prem 的集成负载平衡器),也可以配置其他 L4 负载平衡器。
准备工作包括设置 Google Cloud 项目和下载必要的命令行界面 (CLI) 工具,包括 Terraform 版本 11。还包括使用 Terraform 在 vSphere 中创建管理员工作站虚拟机。
关于管理员工作站
管理员工作站是 vSphere 虚拟机,集群管理员通过此虚拟机安装 GKE On-Prem 并与其进行交互。
如果您是集群管理员,则可以使用 Terraform 在 vSphere 中创建管理员工作站。如需创建管理员工作站,请下载以下三个文件:
- 打开虚拟设备 (OVA) 文件。这是一个受版本控制的虚拟机映像,它为 Terraform 提供“虚拟机模板”。
- Terraform 配置文件 (TF)。
- Terraform 配置变量文件 (TFVARS)。
管理员工作站包括:
关于软件包
GKE On-Prem 的软件包是一个受版本控制的 TGZ 归档文件,其中包含创建和升级 GKE On-Prem 集群所需的全部组件。
软件包有两种类型:
- 完整软件包
管理员工作站提供完整软件包
gke-onprem-vsphere-[VERSION]-full.tgz
。您可以在/var/lib/gke/bundles
找到它。首次安装 GKE On-Prem 时使用完整软件包。它是一个含有以下各项的大型文件:- 一个 TAR 文件,其中包含部署到集群的所有集群组件的容器映像。
- 这些集群组件的 YAML 文件。
- GKE On-Prem 的节点映像。
- 升级软件包
升级软件包
gke-onprem-vsphere-[VERSION].tgz
用于升级集群。您也可以在下载中找到它。它只包含在安装过程中安装的集群组件的 YAML 文件。
如何安装 GKE On-Prem
以下是安装期间所执行步骤的简要说明:
- 通过 SSH 连接到管理员工作站。
- 运行
gkectl create-config
以生成 GKE On-Prem 配置文件。配置文件会声明 GKE On-Prem 的安装规范。您可以根据需要进行修改。 - 运行
gkectl check-config
以验证修改后的配置文件是否可用于安装。 - 运行
gkectl prepare
以将 GKE On-Prem 的操作系统映像迁移到 vSphere,并将其标记为虚拟机模板。如果您配置了私有 Docker 注册表,此命令也会将 GKE On-Prem 的容器映像推送到注册表。 - 您将运行
gkectl create clusters --config
,传入配置文件,以声明方式安装 GKE On-Prem。
成功安装后,您应该会在 vSphere 中拥有以下各项:
架构
图:具有一个用户控制层面的 GKE On-Prem 架构。
在 GKE On-Prem 中,有管理员集群和用户集群。
管理员集群
管理员集群是 GKE On-Prem 的基础层。它运行以下 GKE On-Prem 组件:
- 管理员控制层面:管理员控制层面处理 GKE On-Prem 与所有
gkectl
和 Kubernetes API 之间的调用,以及对 vSphere API 的所有调用。 - 用户控制层面:用户集群的控制层面。将 API 请求路由到集群的节点。每个集群创建都有自己的控制层面,该平面在管理员集群中运行。
- 插件虚拟机:运行管理员集群插件(如 Grafana、Prometheus、Istio 组件和 Stackdriver)的虚拟机。
请注意,用户控制层面由管理员集群管理。它们在管理员集群中的节点上运行,而不是在用户集群中运行。如需管理用户控制层面,管理员集群需要:
- 管理运行用户集群控制层面的机器。
- 创建、更新和删除控制层面组件。
- 将 Kubernetes API 服务器公开给用户集群。
- 管理集群证书。
用户集群
用户集群是您部署和运行容器化工作负载和服务的地方。
CLI 工具
安装 GKE On-Prem 时,您可以将以下 CLI 工具下载到本地工作站或笔记本电脑:
govc
terraform
gkectl
kubectl
(包含在 Google Cloud CLI 中)gcloud
(包含在 gcloud CLI 中)
govc
govc
是 vSphere 的 CLI。您可以在创建管理员工作站时使用 govc
。
terraform
terraform
是 HashiCorp Terraform 的 CLI。您可以使用 terraform
创建管理员工作站。
gkectl
gkectl
是 GKE On-Prem 的主要 CLI。您可以使用 gkectl
来处理许多集群管理任务,包括:
- 创建和管理集群。
- 诊断和排查问题。
- 捕获和导出集群日志。
kubectl
kubectl
是 Kubernetes 的 CLI。您可以使用 kubectl
与 Kubernetes 进行交互并执行以下任务:
- 部署、管理和删除集群中运行的容器化工作负载。
- 管理、修改和删除 Kubernetes 资源。
gcloud
Google Cloud CLI 是 Google Cloud 的 CLI。您可以将 gcloud CLI 用于多种用途,包括:
- 针对 Google Cloud 项目进行身份验证。
- 创建服务帐号及其私钥。
- 将 Identity and Access Management 角色绑定到帐号。
向 Google Cloud 控制台注册集群
当您创建 GKE On-Prem 用户集群时,可以选择启用 Connect,以自动向 Google Cloud 控制台注册这些集群。通过 Connect,您可以在同一 Google Cloud 界面中查看和登录本地和云端 Kubernetes 集群。
如果启用 Connect,则会在每个用户集群中创建一个 Connect Agent。Connect Agent 是一个 Deployment,用于建立从本地集群到 Google Cloud 的长期加密连接。
Connect Agent 的容器映像是从位于 gcr.io
的 Container Registry 代码库中拉取。如果您的用户集群未连接到或无法连接到 gcr.io,您需要使用私有 Docker 存储库将其连接到 Google Cloud 控制台。
版本控制
如需详细了解版本控制的工作原理,请参阅版本。