GKE On-Prem 概览

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)。

管理员工作站包括:

  • 一个软件包文件。
  • CLI 工具,用来与 GKE On-Prem、vSphere 和 Google Cloud 进行交互。

关于软件包

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

以下是安装期间所执行步骤的简要说明:

  1. 通过 SSH 连接到管理员工作站。
  2. 运行 gkectl create-config 以生成 GKE On-Prem 配置文件。配置文件会声明 GKE On-Prem 的安装规范。您可以根据需要进行修改。
  3. 运行 gkectl check-config 以验证修改后的配置文件是否可用于安装。
  4. 运行 gkectl prepare 以将 GKE On-Prem 的操作系统映像迁移到 vSphere,并将其标记为虚拟机模板。如果您配置了私有 Docker 注册表,此命令也会将 GKE On-Prem 的容器映像推送到注册表。
  5. 您将运行 gkectl create clusters --config,传入配置文件,以声明方式安装 GKE On-Prem。

成功安装后,您应该会在 vSphere 中拥有以下各项:

架构

描述 GKE On-Prem 架构的图表图:具有一个用户控制层面的 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.ioContainer Registry 代码库中拉取。如果您的用户集群未连接到或无法连接到 gcr.io,您需要使用私有 Docker 存储库将其连接到 Google Cloud 控制台。

版本控制

如需详细了解版本控制的工作原理,请参阅版本