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
export GOOGLE_APPLICATION_CREDENTIALS=JSON_KEY_FILE
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 系统组件所需的可用空间。此更改可让您更好地控制为应用工作负载分配的空间。每当安装 Anthos clusters on Bare Metal 时,请确保支持以下目录的文件系统具有所需的容量并满足以下要求:
/
: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
工具来创建这些服务帐号。