除了满足安装、硬件和操作系统前提条件外,您还必须配置并设置 Google Cloud 项目、API 和服务帐号,以运行 Anthos clusters on Bare Metal。
请注意,bmctl
命令可在创建集群时自动启用服务帐号和 API,但您也可以手动设置这些服务以更好地控制操作。
正在启用 API
在 Cloud 项目中,通过 Google Cloud Console 或以下命令启用以下 API。
您必须具有相关项目的 roles/owner
、roles/editor
或 roles/serviceusage.serviceUsageAdmin
角色:
servicemanagement.googleapis.com
servicecontrol.googleapis.com
gcloud services enable --project=PROJECT_ID \ servicemanagement.googleapis.com \ servicecontrol.googleapis.com
设置默认 Cloud 项目 ID 和角色
除了配置服务帐号之外,您还可以设置默认 project id
。
您必须具有项目的 owner
或 editor
角色,才能使用 Anthos clusters on Bare Metal。
要设置默认项目,请发出以下命令,并将 PROJECT_ID 替换为您的 Google Cloud 项目 ID:
gcloud config set project PROJECT_ID
手动配置服务帐号
创建集群时,Anthos clusters on Bare Metal 的 bmctl
命令可自动设置 Google 服务帐号和 API。
但是,如需获取更多系统控制权或使用默认服务、帐号和项目简化集群创建,您可以手动设置这些服务。
Anthos clusters on Bare Metal 会将集群连接到 Google Cloud。借助此连接,您可以使用以下工具从 Cloud Console 管理和观察集群:
- 使用 Connect 将 Bare Metal 集群连接到 Google Cloud。这样,您就能够访问集群和工作负载管理功能(包括统一的界面和 Cloud Console),以与集群进行互动。
- 使用 Logging 和 Monitoring 在 Cloud Console 中查看来自集群的日志和指标。
手动配置访问权限的过程包括:
- 在 Cloud 项目中启用必要的 Google 服务。
- 创建包含必要角色的以下服务帐号:
- Connect-agent 服务帐号:Connect 使用此服务帐号来维护集群与 Google Cloud 之间的连接。
- Connect-register 服务帐号:Connect 使用此服务帐号向 Google Cloud 注册集群。
- Logging-monitoring 服务帐号:Connect 使用此服务帐号将日志和指标从集群导出到 Logging 和 Monitoring。
- 下载每个服务帐号的 JSON 密钥文件。
然后,将对 JSON 密钥文件的引用添加到相应的集群配置文件。如需了解详情,请参阅创建集群:概览。
配置服务帐号以与 Connect 搭配使用
要创建服务帐号和密钥文件,请执行以下操作:
- 确保您位于
baremetal
目录中。 - 在 Cloud 项目中启用必要的 Google 服务:
- 创建具有必要角色的 connect-agent 服务帐号并下载密钥文件。以下步骤将在
baremetal
目录中创建connect-agent.json
密钥文件:- 创建服务帐号:
- 授予 gkehub.connect 角色:
- 下载服务帐号 JSON 密钥文件:
gcloud iam service-accounts create connect-agent-svc-account --project=PROJECT_ID
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:connect-agent-svc-account@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/gkehub.connect"
gcloud iam service-accounts keys create connect-agent.json \ --iam-account=connect-agent-svc-account@PROJECT_ID.iam.gserviceaccount.com \ --project=PROJECT_ID
- 创建具有必要角色的 connect-register 服务帐号并下载密钥文件。以下步骤将在
baremetal
目录中创建 connect-register.json
密钥文件:- 创建服务帐号:
- 授予 gkehub.admin 角色:
- 下载服务帐号 JSON 密钥文件:
gcloud iam service-accounts create connect-register-svc-account \ --project=PROJECT_ID
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:connect-register-svc-account@PROJECT_ID.iam.gserviceaccount.com" \ --role=roles/gkehub.admin
gcloud iam service-accounts keys create connect-register.json \ --iam-account=connect-register-svc-account@PROJECT_ID.iam.gserviceaccount.com \ --project=PROJECT_ID
gcloud services enable --project=PROJECT_ID \ gkeconnect.googleapis.com \ gkehub.googleapis.com \ cloudresourcemanager.googleapis.com \ anthos.googleapis.com
配置服务帐号以与 Logging 和 Monitoring 搭配使用
要为 Logging 和 Monitoring 创建服务帐号和密钥文件,请执行以下操作:
- 确保您位于
baremetal
目录中。 - 在 Cloud 项目中启用必要的 Google 服务:
- 创建具有必要角色的 logging-monitoring 服务帐号并下载密钥文件。以下步骤将在
baremetal
目录中创建cloud-ops.json
密钥文件: - 创建服务帐号
- 授予 logging.logWriter 角色
- 授予 monitoring.metricWriter 角色
- 授予 roles/stackdriver.resourceMetadata.writer 角色
- 授予 roles/opsconfigmonitoring.resourceMetadata.writer 角色
- 授予 roles/monitoring.dashboardEditor 角色
- 下载服务帐号 JSON 密钥文件:
gcloud services enable --project PROJECT_ID \ anthos.googleapis.com \ anthosaudit.googleapis.com \ anthosgke.googleapis.com \ cloudresourcemanager.googleapis.com \ gkeconnect.googleapis.com \ gkehub.googleapis.com \ serviceusage.googleapis.com \ stackdriver.googleapis.com \ monitoring.googleapis.com \ logging.googleapis.com \ opsconfigmonitoring.googleapis.com
gcloud iam service-accounts create logging-monitoring-svc-account \ --project=PROJECT_ID
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/logging.logWriter"
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/stackdriver.resourceMetadata.writer"
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/opsconfigmonitoring.resourceMetadata.writer"
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.dashboardEditor"
gcloud iam service-accounts keys create cloud-ops.json \ --iam-account=logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com \ --project=PROJECT_ID