AWSManagementService
资源包含 GKE on AWS 管理服务的配置信息。
您可以在创建管理服务之前配置名为 anthos-gke.yaml
的 YAML 文件。anthos-gke
工具会在创建管理服务时使用该配置。
anthos-gke.yaml
文件的内容取决于您是使用 anthos-gke
来为您创建专用 AWS Virtual Private Cloud (VPC),还是使用现有 AWS VPC。
专用 VPC
apiVersion: multicloud.cluster.gke.io/v1
kind: AWSManagementService
metadata:
name: management
spec:
version: ANTHOS_CLI_VERSION
region: AWS_REGION
authentication:
awsIAM:
adminIdentityARNs:
- ADMIN_AWS_IAM_ARN
kmsKeyARN: KMS_KEY_ARN
databaseEncryption:
kmsKeyARN: KMS_KEY_ARN
googleCloud:
projectID: GCP_PROJECT_ID
serviceAccountKeys:
managementService: MANAGEMENT_KEY_PATH
connectAgent: CONNECT_KEY_PATH
node: NODE_KEY_PATH
iam:
permissionsBoundary: IAM_PERMISSIONS_BOUNDARY
path: IAM_PATH
dedicatedVPC:
vpcCIDRBlock: VPC_CIDR_BLOCK
availabilityZones:
- ZONE_1
- ZONE_2
- ZONE_3
privateSubnetCIDRBlocks:
- PRIVATE_CIDR_BLOCK_1
- PRIVATE_CIDR_BLOCK_2
- PRIVATE_CIDR_BLOCK_3
publicSubnetCIDRBlocks:
- PUBLIC_CIDR_BLOCK_1
- PUBLIC_CIDR_BLOCK_2
- PUBLIC_CIDR_BLOCK_3
# Optional section
rootVolume:
volumeType: ROOT_VOLUME_TYPE
iops: ROOT_VOLUME_IOPS
kmsKeyARN: ROOT_VOLUME_KEY
dataVolume:
volumeType: DATA_VOLUME_TYPE
iops: DATA_VOLUME_IOPS
kmsKeyARN: DATA_VOLUME_KEY
tags:
tag-name: tag-value
bastionHost:
allowedSSHCIDRBlocks:
- SSH_CIDR_BLOCK
rootVolume:
volumeType: ROOT_VOLUME_TYPE
iops: ROOT_VOLUME_IOPS
kmsKeyARN: ROOT_VOLUME_KEY
bootstrapS3Bucket: BOOTSTRAP_S3_BUCKET
proxy: PROXY_JSON_FILE
terraform:
invokeManually: No
stateGCSBucket: GCS_BUCKET_NAME
现有 VPC
apiVersion: multicloud.cluster.gke.io/v1
kind: AWSManagementService
metadata:
name: management
spec:
version: ANTHOS_CLI_VERSION
region: AWS_REGION
authentication:
awsIAM:
adminIdentityARNs:
- ADMIN_AWS_IAM_ARN
kmsKeyARN: KMS_KEY_ARN
databaseEncryption:
kmsKeyARN: KMS_KEY_ARN
securityGroupIDs:
- SECURITY_GROUP_IDS
googleCloud:
projectID: GCP_PROJECT_ID
serviceAccountKeys:
managementService: MANAGEMENT_KEY_PATH
connectAgent: CONNECT_KEY_PATH
node: NODE_KEY_PATH
iam:
permissionsBoundary: IAM_PERMISSIONS_BOUNDARY
path: IAM_PATH
existingVPC:
subnetID: [MANAGEMENT_SUBNET_ID]
allowedSSHSecurityGroupIDs: [SSH_SECURITY_GROUPS]
# Optional fields
rootVolume:
volumeType: ROOT_VOLUME_TYPE
iops: ROOT_VOLUME_IOPS
kmsKeyARN: ROOT_VOLUME_KEY
dataVolume:
volumeType: DATA_VOLUME_TYPE
iops: DATA_VOLUME_IOPS
kmsKeyARN: DATA_VOLUME_KEY
ubuntuRepositoryMirror: 'packages.cloud.google.com'
bastionHost:
subnetID: [BASTION_HOST_SUBNET_ID]
allowedSSHCIDRBlocks:
- [SSH_CIDR_BLOCK]
rootVolume:
volumeType: ROOT_VOLUME_TYPE
iops: ROOT_VOLUME_IOPS
kmsKeyARN: ROOT_VOLUME_KEY
bootstrapS3Bucket: BOOTSTRAP_S3_BUCKET
tags:
tag-name: tag-value
proxy: PROXY_JSON_FILE
terraform:
invokeManually: No
stateGCSBucket: GCS_BUCKET_NAME
以下部分介绍这些字段。
spec.version
spec.version
的值是 anthos-
gke
创建的管理服务的版本。该版本与 anthos-gke version
的输出相匹配。例如 aws-1.14.1-gke.0
。
spec.region
spec.region
的值是您要在其中部署管理服务的 AWS 区域。例如 us-east-1
。
spec.authentication.awsIAM
spec.authentication.awsIAM.adminIdentityARNs
的值是一个字符串,其中包含一个 AWS IAM 用户的 Amazon 资源名称 (ARN),该用户具有创建 GKE on AWS 管理服务的权限。例如 arn:aws:iam::123456789:user/someuser
。
spec.kmsKeyARN
spec.kmsKeyARN
的值是一个字符串,其名称为Amazon 资源名称 (ARN) 或在前提条件中创建的 AWS KMS 密钥的别名。GKE on AWS 使用此密钥进行信封加密。例如 arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
。
spec.databaseEncryption
spec.databaseEncryption.kmsKeyARN
的值是一个字符串,其名称为 Amazon 资源名称 (ARN) 或 AWS KMS 密钥的密钥别名(GKE on AWS 使用该密钥加密集群中的应用层 Secret)。例如 arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
。
spec.securityGroupIDs
spec.securityGroupIDs
的值是分配给管理服务虚拟机的其他 AWS 安全群组 ID 的列表。例如 [sg-00123456789abcd, sg-00123456789def1]`。
spec.dedicatedVPC
此字段表示所需的 VPC 设置。
名称 | 说明 | 类型 | 示例 |
---|---|---|---|
vpcCIDRBlock | 您所需的 AWS VPC 的 CIDR 地址块。必须在 /16 到 /28 位之间。 | string |
10.0.0.0/16 |
availabilityZones | 要在其中部署控制层面副本的可用性区域。每个区域都有自己的子网,并且需要单独的 CIDR 地址块。 | list(string) |
[us-east-1a, us-east-1b] |
privateSubnetCIDRBlocks | 每个可用性区域的 VPC 中的专用子网的 CIDR 地址块。需要是 vpcCIDRBlock 的子集。每个可用性区域需要具有一个子网。 |
list(string) |
[10.0.101.0/24, 10.0.102.0/24] |
publicSubnetCIDRBlocks | 每个可用性区域的 VPC 中的公共子网的 CIDR 地址块。需要是 vpcCIDRBlock 的子集。每个可用性区域需要具有一个子网。 |
list(string) |
[10.0.1.0/24, 10.0.2.0/24] |
bastionAllowedSSHCIDRBlocks | 允许入站 SSH 访问权限的 CIDR 地址块。此字段在 GKE on AWS 1.5 中已弃用。在 1.5 版或更高版本中使用 spec.bastionHost 。 |
string |
[104.132.0.0/14] |
spec.existingVPC
spec.existingVPC
下的字段将 GKE on AWS 配置为使用现有 AWS VPC。
名称 | 说明 | 类型 | 示例 |
---|---|---|---|
subnetID | 运行管理服务的子网 ID。 | string |
subnet-00123456789ab |
allowedSSHSecurityGroupIDs | VPC 中允许 SSH 访问的安全组 ID 列表。 | 列表(字符串) | [sg-00123456789abcd, sg-00123456789def1] |
spec.googleCloud
spec.googleCloud
下的字段配置 Google Cloud 项目和 IAM 服务账号密钥。
名称 | 说明 | 类型 | 示例 |
---|---|---|---|
projectID | Google Cloud 项目。 | string |
my-gcp-project-id |
serviceAccountKeys | 服务账号密钥的文件路径。 | serviceAccountKeys |
spec.googleCloud.serviceAccountKeys
spec.googleCloud.serviceAccountKeys
下的字段包括 GCP 服务账号密钥的本地文件路径。如需每个密钥的详细说明,请参阅前提条件。
名称 | 说明 | 类型 | 示例 |
---|---|---|---|
managementService
|
管理集群使用的服务账号密钥 | 字符串 | path/to/key/management-sa-key.json
|
connectAgent
|
GKE Hub Connect Agent 使用的服务账号密钥 | 字符串 | path/to/key/hub-sa-key.json
|
node
|
节点使用的服务账号密钥 | 字符串 | path/to/key/node-sa-key.json
|
spec.iam
spec.iam
下的字段配置 GKE on AWS 环境的可选 AWS IAM 参数。
名称 | 说明 | 类型 | 示例 |
---|---|---|---|
permissionsBoundary | IAM 角色的权限边界的 ARN | string |
arn:aws:iam::126285863215:policy/testPolicyBoundary |
路径 | IAM 角色的路径 | string |
/org_abc/team_abc/member_abc/ |
spec.bastionHost
spec.bastionHost
部分为可选部分,用于描述堡垒主机。
堡垒主机是放置在公共子网中的 EC2 实例。它允许来自指定 CIDR 地址块的入站 SSH 访问和对 GKE on AWS 管理服务和用户集群的出站 SSH 访问。
您可以创建堡垒主机以用于 dedicatedVPC
或 existingVPC
安装。allowedSSHCIDRBlocks
字段指定允许的入站地址范围,并且不能为空。
如果堡垒主机不存在,则 GKE on AWS 会创建新的堡垒主机。
- 对于
dedicatedVPC
安装,GKE on AWS 会创建一个子网。 - 对于
existingVPC
安装,您需要为堡垒主机提供一个子网,并确保此子网连接到您的 VPC。
您可以修改堡垒主机,方法是更改或删除 spec.bastionHost
字段,然后依次运行 anthos-gke aws management init
和 anthos-gke aws management apply
。
名称 | 说明 | 类型 | 示例 |
---|---|---|---|
subnetID | 堡垒主机在其中运行的子网的 ID。对于 existingVPC 安装,该子网必须允许从端口 22 访问它的入站流量。此外,请确保您的 VPC 允许此子网进行入站访问。对于 dedicatedVPC 安装,不要指定此字段。GKE on AWS 将预配具有所需访问权限的子网。 |
字符串 | subnet-003bdf7b0f5e21e45 |
allowedSSHCIDRBlocks | 允许入站 SSH 访问权限的 CIDR 地址块。 | list(string) |
[104.132.0.0/14] |
rootVolume | 一个用于描述堡垒主机根卷的对象。 | object |
{volumeType: gp2} |
spec.rootVolume、spec.dataVolume、spec.bastionHost.rootVolume
下表介绍了以下对象的通用字段:
spec.rootVolume
,用于控制平面根磁盘卷spec.dataVolume
,用于控制平面数据磁盘卷spec.bastionHost.rootVolume
,用于堡垒主机根磁盘卷
名称 | 说明 | 类型 | 示例 | 必需 |
---|---|---|---|---|
volumeType | 节点的 AWS EBS 卷类型。可以是 gp2 (默认值)或 gp3 。 |
string |
gp2 |
否 |
iops | 卷的每秒预配 IO 操作数 (IOPS)。仅在 volumeType 为 GP3 时有效。如需了解详情,请参阅通用 SSD 卷 (gp3)。 |
integer |
5000 |
否 |
kmsKeyARN | 用于对卷进行加密的 AWS KMS 密钥的 ARN。如需了解详情,请参阅使用客户管理 CMK 来加密卷。 | string |
arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee |
无 |
spec.tags
名称 | 说明 | 类型 | 示例 |
---|---|---|---|
标记 | 为支持管理服务的每个 AWS 资源分配的可选键值对元数据。 | map(string) |
{Environment: Production, Team: Analytics} |
spec.proxy
spec.proxy
字段配置可选的 HTTP/HTTPS 代理。
名称 | 说明 | 类型 | 示例 |
---|---|---|---|
proxy | 代理配置文件的路径。 | anthos-gke.yaml 的相对路径 |
proxy.json |
spec.bootstrapS3Bucket
spec.bootstrapS3Bucket
字段配置 GKE on AWS 的 S3 存储分区名称。
名称 | 说明 | 类型 | 示例 |
---|---|---|---|
bootstrapS3Bucket | GKE on AWS 在其中存储配置信息的 AWS S3 存储分区名称的可选字段。 如果要在同一 AWS 区域中创建多个 GKE on AWS 管理服务,请将该值设置为唯一的存储桶名称。 | string |
example-s3-bucket |
spec.terraform
spec.terraform.invokeManually
字段会将 anthos-gke
命令配置为不创建管理服务。
名称 | 说明 | 类型 | 示例 |
---|---|---|---|
invokeManually | 可选字段,可将 anthos-gke 命令行工具配置为在构建和验证配置后不创建管理服务。如果将 invokeManually 设置为 Yes ,则可以手动修改并应用 Terraform 配置文件。 |
Yes ,No |
Yes |
stateGCSBucket | 可选字段,用于指定一个现有的 Google Cloud Storage 存储桶,Terraform 可以用它来存储其配置数据。 | string |
example-GCS-bucket |