Anthos clusters on Bare Metal 需满足下列安装前提条件:
- 运行
bmctl
工具的工作站机器的前提条件。 - Anthos clusters on Bare Metal 部署中的节点机器的前提条件。
- 负载均衡器机器的前提条件。
- Google Cloud 项目的前提条件。
- 您的服务帐号的前提条件。
如果您将工作站机器用作集群节点机器,则该机器必须同时满足两者的前提条件。
准备工作
在安装过程中,您必须提供以下凭据:
- 访问集群节点机器所需的 SSH 私钥。
- 集群节点机器的登录名(如果不使用
root
)。 - Google Cloud 服务帐号密钥。如需了解详情,请参阅创建和管理服务帐号密钥。
请确保您已拥有所有必要凭据,然后再尝试安装 Anthos clusters on Bare Metal。
登录 gcloud
- 使用
gcloud auth application-default
login 以用户身份登录 gcloud: - Service Account Admin
- Service Account Key Admin
- Project IAM Admin
- Compute Viewer
- Service Usage Admin
- 获取要用于创建集群的 Google Cloud 项目 ID:
gcloud auth application-default login您需要具有 Project Owner/Editor 角色才能使用自动 API 启用和服务帐号创建功能,具体如下所述。您还可以向用户添加以下 IAM 角色:
export GOOGLE_APPLICATION_CREDENTIALS=JSON_KEY_FILEJSON_KEY_FILE 指定服务帐号 JSON 密钥文件的路径。
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 可能会导致问题。如需了解详情,请参阅已知问题。
确保无论何时安装或重新安装 Anthos clusters on Bare Metal 时,支持以下目录的文件系统都具有所需的容量并满足以下两个要求:
- 总体磁盘空间使用率低于 90%。
这些目录至少需要 128 GiB 的可用存储空间。
安装会根据需要创建以下目录:
/var/lib/docker
或/var/lib/containerd
,具体取决于容器运行时:30 GiB(32212254720 字节)/var/lib/kubelet
:10 GiB(10737418240 字节)/mnt/anthos-system
:25 GiB(26843545600 字节)/
:20 GiB(21474836480 字节)/var/lib/etcd
:20 GiB(21474836480 字节,仅适用于控制层面节点)
/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
工具来创建这些服务帐号。