AWSManagementService
資源包含 GKE on AWS 管理服務的設定資訊。
建立管理服務前,請先設定名為 anthos-gke.yaml
的 YAML 檔案。anthos-gke
工具會在建立管理服務時使用這項設定。
anthos-gke.yaml
檔案的內容取決於您是否使用 anthos-gke
建立專屬的 AWS 虛擬私有雲 (VPC),或是使用現有的 AWS 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
的值是字串,其中包含在「必要條件」中建立的 AWS KMS 金鑰的 Amazon 資源名稱 (ARN) 或別名。GKE on AWS 會使用該金鑰進行封包加密。例如:arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
。
spec.databaseEncryption
spec.databaseEncryption.kmsKeyARN
的值是字串,其中包含 AWS KMS 金鑰的 Amazon 資源名稱 (ARN) 或金鑰別名。GKE on AWS 會使用這項金鑰加密叢集中的應用程式層級密鑰。例如:arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
。
spec.securityGroupIDs
spec.securityGroupIDs
的值是分配給管理服務 VM 的其他 AWS 安全群組 ID 清單。例如 `[sg-00123456789abcd, sg-00123456789def1]`。
spec.dedicatedVPC
這個欄位代表所需的虛擬私有雲設定。
名稱 | 說明 | 類型 | 範例 |
---|---|---|---|
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 清單。 | list(string) | [sg-00123456789abcd, sg-00123456789def1] |
spec.googleCloud
spec.googleCloud
設定專案 Google Cloud 和 IAM 服務帳戶金鑰下方的欄位。
名稱 | 說明 | 類型 | 範例 |
---|---|---|---|
projectID | Google Cloud Google Cloud 專案。 | string |
my-gcp-project-id |
serviceAccountKeys | 服務帳戶金鑰的檔案路徑。 | serviceAccountKeys |
spec.googleCloud.serviceAccountKeys
spec.googleCloud.serviceAccountKeys
底下的欄位包含 GCP 服務帳戶金鑰的本機檔案路徑。如需各個金鑰的詳細說明,請參閱「必要條件」。
名稱 | 說明 | 類型 | 範例 |
---|---|---|---|
managementService
|
管理叢集使用的服務帳戶金鑰 | 字串 <0x | path/to/key/management-sa-key.json
|
connectAgent
|
GKE Hub Connect 代理程式使用的服務帳戶金鑰 | 字串 <0x | 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 存取權,以及連出 SSH 存取權,可連入 GKE on AWS 管理服務和使用者叢集。
您可以為 dedicatedVPC
或 existingVPC
安裝建立堡壘主機。allowedSSHCIDRBlocks
欄位會指定允許的連入位址範圍,且不得為空白。
如果沒有堡壘主機,GKE on AWS 會建立新的堡壘主機。
- 如果是
dedicatedVPC
安裝作業,GKE on AWS 會建立子網路。 - 如要安裝
existingVPC
,您需要為堡壘主機提供子網路,並確保這個子網路可連線至虛擬私有雲。
如要修改堡壘主機,請變更或刪除 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 | 用來加密 EBS 磁碟區的 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。
名稱 | 說明 | 類型 | 範例 |
---|---|---|---|
proxy | Proxy 設定檔的路徑。 | 從 anthos-gke.yaml 開始的相對路徑 |
proxy.json |
spec.bootstrapS3Bucket
spec.bootstrapS3Bucket
欄位會為 GKE on AWS 設定 S3 bucket 名稱。
名稱 | 說明 | 類型 | 範例 |
---|---|---|---|
bootstrapS3Bucket | 選用欄位,用於指定 GKE on AWS 儲存設定資訊的 AWS S3 bucket 名稱。如要在同一個 AWS 區域中建立多個 GKE on AWS 管理服務,請將這個值設為專屬 bucket 名稱。 | string |
example-s3-bucket |
spec.terraform
「spec.terraform.invokeManually
」欄位會將 anthos-gke
指令設定為不建立管理服務。
名稱 | 說明 | 類型 | 範例 |
---|---|---|---|
invokeManually | 選用欄位,可設定 anthos-gke 指令列工具,在建構及驗證設定後,不要建立管理服務。如果將 invokeManually 設為 Yes ,您可以手動編輯及套用 Terraform 設定檔。 |
Yes 、No |
Yes |
stateGCSBucket | 選用欄位,用於指定 Terraform 儲存設定資料的現有 Google Cloud Storage 值區。 | string |
example-GCS-bucket |