安装在断开连接模式下运行的 Anthos 基础架构

本页面适用于基础架构运维者

在断开连接模式下运行的 Anthos 是 Anthos 的一个版本,可在经过网闸隔离的环境中与互联网完全隔离。您可以使用在断开连接模式下运行的 Anthos 在本地运行受到高度监管的工作负载,同时仍然受益于云原生基础架构的许多优势。

简介

在断开连接模式下运行的 Anthos 的架构与 Anthos on Bare Metal 的连接版本的架构类似:存在一个管理员集群,您可用它来创建和管理用户集群。您的工作负载在用户集群上运行。您还有一个管理员工作站,它包含安装和管理在断开连接模式下运行的 Anthos 部署所需的工具。

与 Anthos on Bare Metal 的连接版本相比,在断开连接模式下运行的 Anthos 包含 3 个额外的组件:

  • 在管理员工作站上运行的可选容器注册表,用于存储所有 Anthos 容器映像(在您没有 Container Registry 访问权限的情况下是必需的)。
  • actl 命令行工具,可帮助安装在断开连接模式下运行的 Anthos 并执行其他管理任务。
  • Anthos Management Center,可帮助您管理授权和身份验证、可观测性以及多集群 Anthos 功能管理。Management Center 包含一个在管理员集群上运行的基于网页的控制台。使用 Management Center Console 的用户界面,您可以管理 Anthos 部署包含的所有资源,包括机器、地址池和用户集群。您还可以使用 Management Center Console 来管理 Anthos 功能并监控工作负载。

描述 Anthos 架构的图表

图:Anthos 架构图。

准备环境

获取产品版本的访问权限,下载最新版本,并安装所有依赖项。

准备工作

在按照本页面中的说明操作之前,请确保您满足在断开连接模式下运行的 Anthos 的技术要求

获取在断开连接模式下运行的 Anthos 的访问权限

Google 必须向您授予访问在断开连接模式下运行的 Anthos 版本的权限。请向 Google 联系人提供每个测试人员的电子邮件地址,以便我们为他们授予下载代码库的权限。这些电子邮件地址必须是 Google 帐号。

在 Google 联系人确认您有权访问在断开连接模式下运行的 Anthos 版本之后,请运行以下命令,检查您是否有权下载在断开连接模式下运行的 Anthos 版本:

gsutil ls gs://anthos-private-mode-release/

如果您收到错误,请运行 gcloud auth list 命令,验证 gsutil 使用的帐号是否为您提供给 Google 联系人的同一 Google 帐号。

或者,您也可以通过访问最新版本存储桶,来验证您是否拥有适当的权限。您必须使用您之前提供的 Google 帐号登录。

如果您访问在断开连接模式下运行的 Anthos 版本时遇到问题,请与您的 Google 联系人联系以获取帮助。

下载在断开连接模式下运行的 Anthos

在本部分中,您将下载在断开连接模式下运行的 Anthos 版本,它包含在多个文件中,每个文件的大小都在 GB 级别。下载可能需要较长时间,具体取决于您的互联网连接。

下载在断开连接模式下运行的 Anthos

在管理员工作站上运行以下命令:

# Login with the account granted access to Anthos running in disconnected mode
gcloud auth login

# Download the script which helps download all the latest components
export VERSION=1.12.0-gke.0

# Please use official 'INSTALLER_DIGEST' value from https://cloud.google.com/anthos/private-mode/docs/1.11/installing/infrastructure#download
export INSTALLER_DIGEST=53275103489dd7569a321da5f70d78cad00a9e3b6a550202200ede37d51d4d3e
export INSTALLER=get-anthos-private-mode-$VERSION.sh
gsutil cp gs://anthos-private-mode-release/$VERSION/$INSTALLER .
if [[ -n "$INSTALLER_DIGEST" ]]; then echo "$INSTALLER_DIGEST $INSTALLER" | sha256sum -c; fi && chmod +x $INSTALLER && ./$INSTALLER

# If you are working on a workstation shared with other users,
# we recommend that you revoke your credentials after downloading the release.
gcloud auth revoke YOUR_EMAIL_ADDRESS

安装其余依赖项

在断开连接模式下运行的 Anthos 下载完成后,请运行以下命令:

cd anthos-baremetal-private-mode

# Add actl command line tool and tools directory to the PATH
export PATH=$PWD/bin:$PATH

# Download Harbor offline installer
curl -SL \
  https://github.com/goharbor/harbor/releases/download/v2.2.0/harbor-offline-installer-v2.2.0.tgz \
  --output "local-registry/harbor-offline-installer.tgz"

# Install docker-compose
curl -SL \
  https://github.com/docker/compose/releases/download/1.28.5/docker-compose-Linux-x86_64 \
  --output "local-registry/docker-compose"

这些只是需要连接互联网的流程中的两个步骤。如果要在与互联网完全隔离的环境中安装在断开连接模式下运行的 Anthos,您可以执行以下操作:

  • 首先将管理员工作站连接到互联网,并下载版本(如上所示)。然后,断开工作站与互联网的连接,并将工作站连接到气隙隔离的环境。
  • 从已连接到互联网的开发者工作站下载该版本,将其复制到便携式存储设备中,然后将此便携式存储设备移动到气隙隔离的管理员工作站。

您可以浏览在断开连接模式下运行的 Anthos 版本的内容:

./anthos-baremetal-private-mode
├── actl-workspace
│   └── admin
│       └── admin.yaml
├── baremetal
│   ├── images
│   └── package-spec.yaml
├── bin
│   ├── actl
│   ├── istioctl
│   └── nomos
├── local-registry
│   ├── cleanup.sh
│   ├── docker-compose
│   ├── generate-certs.sh
│   ├── harbor-offline-installer.tgz
│   └── install.sh
├── managementcenter
│   ├── images
│   └── management-center.yaml
├── services
│   ├── anthos-config-management
│   ├── anthos-service-mesh
│   └── images
├── third_party
└── updatecenter
    └── images
  • local-registry 目录包含用于设置本地容器注册表的资源。
  • 其他目录(如 managementcenterservicesbaremetal)包含安装管理员集群和 Anthos Management Center 所需的一切资源。

可选:启用 actl shell 自动补全功能

actl 命令行工具支持 Bash、Zsh 和 Fish 的 shell 自动补全功能。您可以按照 actl help completion 中的说明操作,在 shell 中设置自动补全,例如在 Ubuntu/Debian、Bash 中:

# One time setup: install bash-completion
sudo apt update && sudo apt install bash-completion

# In ~/.bashrc
source /etc/profile.d/bash_completion.sh
source <(actl completion bash)

设置容器注册表

在断开连接模式下运行的 Anthos 的工作方式是将 Anthos 容器映像存储在本地容器注册表中。您可以使用自己的现有容器注册表,也可以使用在断开连接模式下运行的 Anthos 捆绑的容器注册表。

导出以下环境变量:

export REGISTRY_HOST=REGISTRY_HOST
export REGISTRY_PASSWORD=REGISTRY_PASSWORD

# By default, a public project called 'library' is created,
# and you can also create other public or private projects with the container registry portal.
export PRIVATE_REGISTRY=${REGISTRY_HOST}/library

请替换以下内容:

  • REGISTRY_HOST 是注册表 IP 地址。如果要在管理员工作站上安装和使用在断开连接模式下运行的 Anthos 容器注册表,请在此处使用管理员工作站 IP 地址。

  • REGISTRY_PASSWORD 是您为注册表密码设置的值。

如果您决定使用自己的容器注册表,请跳至将映像上传到容器注册表部分。

设置在断开连接模式下运行的 Anthos 的容器注册表

在本部分中,您将在管理员工作站上设置私有容器注册表。在管理员工作站上运行以下所有命令。

  1. 如果您没有自己的私有容器注册表,请安装在断开连接模式下运行的 Anthos 容器注册表。

    cd ~/anthos-baremetal-private-mode
    
    # Move it to a path under $PATH
    chmod a+x local-registry/docker-compose
    sudo cp local-registry/docker-compose /usr/bin
    
    # Install local registry
    ./local-registry/install.sh
    
  2. 登录注册表以验证您是否具有访问权限。如果收到错误,您可能需要等待几秒钟。

    docker login ${REGISTRY_HOST} -u admin -p ${REGISTRY_PASSWORD}
    

注意

  • 在断开连接模式下运行的 Anthos 容器注册表仅用于安装在断开连接模式下运行的 Anthos。该功能不适合用于生产用途。
  • 默认公共注册表项目为 library,在默认情况下可以使用,但您可以根据需要登录注册表并创建新项目。
  • 服务启动后,您可以通过 https://REGISTRY_HOST/ 来访问容器注册表。 登录凭据是用户名 admin 和密码 REGISTRY_PASSWORD
  • 凭据以未加密的形式存储在 /home/<USER>/.docker/config.json 中。

将映像上传到容器注册表

在本部分中,您要将在断开连接模式下运行的 Anthos 容器映像上传到容器注册表。

准备在断开连接模式下运行的 Anthos 容器映像,并将其上传到您的容器注册表。如果出现提示,请选择 Use that credential 选项,或输入新凭据。

actl images push --private-registry=${PRIVATE_REGISTRY} \
    --images ~/anthos-baremetal-private-mode

注意:如果您在工作站上使用 HTTP 代理,则可能需要取消设置以下环境变量才能使 actl images push 命令正常运行:

unset http_proxy
unset https_proxy
unset HTTP_PROXY
unset HTTPS_PROXY

可选:将 Helm 图表上传到 Container Registry

在本部分中,您将在断开连接模式下运行的 Anthos 的可选 Helm 图表上传到您的容器注册表。在断开连接模式下运行的 Anthos 1.10 版包含三个 Google Cloud Marketplace 解决方案(PostgreSQL、Redis 和 Kafka)的捆绑 Helm 图表。这些热门开源软件堆栈由 Google 打包,旨在在断开连接的环境中运行。

  1. 准备在断开连接模式下运行的 Anthos Helm 图表并将其上传到您的容器注册表。如果出现提示,请选择 Use that credential 选项,或输入新凭据:

    actl packages push --private-registry=${PRIVATE_REGISTRY} \
      ~/anthos-baremetal-private-mode/services/third_party-postgresql/package-spec.yaml
    actl packages push --private-registry=${PRIVATE_REGISTRY} \
      ~/anthos-baremetal-private-mode/services/third_party-redis-ha/package-spec.yaml
    actl packages push --private-registry=${PRIVATE_REGISTRY} \
      ~/anthos-baremetal-private-mode/services/third_party-kafka/package-spec.yaml
    
  2. 要从容器注册表中拉取在断开连接模式下运行的 Anthos Helm 图表,请启用 Helm 实验性 OCI 支持:

    export HELM_EXPERIMENTAL_OCI=1
    
  3. 如果您的私有注册表使用自签名证书,则还必须更新系统上的证书授权机构 (CA) 证书。如需了解详情,请参阅此 Helm 问题

    sudo cp local-registry/ca.crt /usr/local/share/ca-certificates/
    sudo update-ca-certificates
    
  4. 登录注册表以验证您是否具有访问权限:

    helm registry login ${REGISTRY_HOST} -u admin -p ${REGISTRY_PASSWORD}
    
  5. 从容器注册表中拉取和导出在断开连接模式下运行的 Anthos Helm 图表:

    helm chart pull ${PRIVATE_REGISTRY}/<CHART>:<TAG>
    helm chart export ${PRIVATE_REGISTRY}/<CHART>:<TAG> .
    

后续步骤