安装前提条件概览

Anthos clusters on Bare Metal 需满足下列安装前提条件:

如果您将工作站机器用作集群节点机器,则该机器必须同时满足两者的前提条件。

准备工作

在安装过程中,您必须提供以下凭据:

  • 访问集群节点机器所需的 SSH 私钥。
  • 集群节点机器的登录名(如果不使用 root)。
  • Google Cloud 服务帐号密钥。如需了解详情,请参阅创建和管理服务帐号密钥

请确保您已拥有所有必要凭据,然后再尝试安装 Anthos clusters on Bare Metal。

登录 gcloud

  1. 使用 gcloud auth application-default login 以用户身份登录 gcloud:
  2. gcloud auth application-default login
    
    您需要具有 Project Owner/Editor 角色才能使用自动 API 启用和服务帐号创建功能,具体如下所述。您还可以向用户添加以下 IAM 角色:
    • Service Account Admin
    • Service Account Key Admin
    • Project IAM Admin
    • Compute Viewer
    • Service Usage Admin
    或者,如果您已有具备这些角色的服务帐号,请运行以下命令:
    export GOOGLE_APPLICATION_CREDENTIALS=JSON_KEY_FILE
    
    JSON_KEY_FILE 指定服务帐号 JSON 密钥文件的路径。
  3. 获取要用于创建集群的 Google Cloud 项目 ID:
  4. export CLOUD_PROJECT_ID=$(gcloud config get-value project)
    

工作站前提条件

bmctl 工作站必须满足以下前提条件:

  • 操作系统与集群节点机器上运行的受支持的 Linux 发行版相同。
  • 安装了 Docker 19.03 或更高版本。
  • 非根用户是 docker 组的成员(有关说明,请参阅以非根用户身份管理 Docker)。
  • 已安装 gcloud。
  • 50 GiB 可用磁盘空间。
  • 第 3 层连接所有集群节点机器。
  • 可通过 SSH 使用具有无密码根访问权限的私钥访问所有集群节点机器。可以是直接访问权限或通过 sudo 的访问权限。
  • 访问控制层面 VIP。

节点机器前提条件

节点机器具有以下前提条件:

  • 其操作系统是受支持的 Linux 发行版之一。
  • Linux 内核版本为 4.17.0 或更高版本。Ubuntu 18.04 和 18.04.1 使用的是 Linux 内核版本 4.15,因此不兼容。
  • 满足最低硬件要求。
  • 互联网访问权限。
  • 与所有其他节点机器的第 3 层连接。
  • 访问控制层面 VIP。
  • 正确配置的 DNS 域名服务器。
  • 无重复的主机名。
  • 启用了以下 NTP 服务之一,并且能正常运行:
    • chrony
    • ntp
    • ntpdate
    • systemd-timesyncd
  • 正常运行的软件包管理器:apt、dnf 等。
  • 在 Ubuntu 上,您必须停用复杂防火墙 (UFW)。运行 systemctl stop ufw 以停用 UFW。
  • 在 Ubuntu 上,并且从 Anthos 集群在裸机 1.8.2 上开始运行,您无需停用 AppArmor。如果您使用早期版本的 Anthos 集群在裸机上部署集群,请使用以下命令停用 AppArmor:systemctl stop apparmor
  • 如果您选择 Docker 作为容器运行时,则可以使用 Docker 19.03 或更高版本。如果您的节点机器上未安装 Docker 或安装了旧版 Docker,在您创建集群时,Anthos on Bare Metal 会安装 Docker 19.03.13 或更高版本。
  • 如果您使用默认容器运行时 containerd,则无需 Docker,并且安装 Docker 可能会导致问题。如需了解详情,请参阅已知问题

  • 磁盘空间的前提条件取决于您部署的集群版本:

    版本 1.10.1 及更早版本的集群

    每当安装 Anthos clusters on Bare Metal 1.10.1 版或更早版本时,请确保支持以下目录的文件系统具有所需的容量并满足以下要求:

    • 这些目录至少具有 128 GiB 的免费存储空间,并且目录的底层分区具有以下容量:
      • /:20 GiB(21474836480 字节)
      • /var/lib/docker/var/lib/containerd,具体取决于容器运行时:30 GiB(32212254720 字节)
      • /var/lib/kubelet:10 GiB(10737418240 字节)
      • /mnt/anthos-system:25 GiB(26843545600 字节)
      • /var/lib/etcd:20 GiB(21474836480 字节,仅适用于控制层面节点)
    • 总体磁盘空间使用率低于 90%。

    1.10.2 及更高版本集群

    从 1.10.2 版开始,创建集群时仅检查 Anthos clusters on Bare Metal 系统组件所需的可用空间。此更改可让您更好地控制为应用工作负载分配的空间。每当安装 Anthos clusters on Bare Metal 1.10.2 版或更高版本时,请确保支持以下目录的文件系统具有所需的容量并满足以下要求:

    • /:17 GiB(18,253,611,008 字节)。
    • /var/lib/docker/var/lib/containerd,具体取决于容器运行时:
      • 30 GiB(32,212,254,720 字节),用于控制层面节点。
      • 10 GiB(10,485,760 字节),用于工作器节点。
    • /var/lib/kubelet:500 MiB(524,288,000 字节)。
    • /var/lib/etcd:20 GiB(21,474,836,480 字节,仅适用于控制层面节点)。

    无论集群版本如何,前面的目录列表可以位于相同或不同的分区上。如果它们位于相同的底层分区,则空间要求是该分区上每个单独的目录所需的空间总和。对于所有发布版本,集群创建过程都会根据需要创建目录。

  • /var/lib/etcd/etc/kubernetes 目录不存在或为空。

除了安装和运行 Anthos clusters on Bare Metal 的前提条件之外,客户还应遵守对行业或业务细分进行治理的相关标准,例如处理信用卡的企业的 PCI DSS 要求或国防工业中企业的安全技术实现指南 (STIG)。

负载均衡器机器前提条件

如果您的部署没有专用的负载均衡器节点池,则可以使用工作器节点或控制层面节点构建负载均衡器节点池。在这种情况下,还需满足其他前提条件:

  • 机器位于同一第 2 层子网中。
  • 所有 VIP 都在负载均衡器节点子网中,并且可从子网的网关路由。
  • 负载均衡器的子网应侦听免费 ARP,以将数据包转发到主负载均衡器。

Google Cloud 项目前提条件

安装 Anthos clusters on Bare Metal 之前,请为关联的 GCP 项目启用以下服务:

  • anthos.googleapis.com
  • anthosaudit.googleapis.com
  • anthosgke.googleapis.com
  • cloudresourcemanager.googleapis.com
  • container.googleapis.com
  • gkeconnect.googleapis.com
  • gkehub.googleapis.com
  • iam.googleapis.com
  • logging.googleapis.com
  • monitoring.googleapis.com
  • opsconfigmonitoring.googleapis.com
  • serviceusage.googleapis.com
  • stackdriver.googleapis.com

您还可以使用 bmctl 工具来启用这些服务。

服务帐号前提条件

在生产环境中,您应该针对不同的目的创建单独的服务帐号。Anthos Clusters on Bare Metal 需要以下不同类型的 Google Cloud 服务帐号,具体取决于其目的:

  • 访问 Container Registry (gcr.io) 不需要特殊角色。
  • 如需在舰队中注册集群,请将 roles/gkehub.admin IAM 角色授予 Google Cloud 项目中的服务帐号。
  • 如需连接到舰队,请将 roles/gkehub.connect IAM 角色授予 Google Cloud 项目中的服务帐号。
  • 如需向 Google Cloud 的运维套件发送日志和指标,请将以下 IAM 角色授予 Google Cloud 项目中的服务帐号:

    • roles/logging.logWriter
    • roles/monitoring.metricWriter
    • roles/stackdriver.resourceMetadata.writer
    • roles/monitoring.dashboardEditor
    • roles/opsconfigmonitoring.resourceMetadata.writer

您还可以使用 bmctl 工具来创建这些服务帐号。