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
の値は、GKE on AWS 管理サービスを作成する権限を持つ AWS IAM ユーザーの Amazon リソース名(ARN)を含む文字列です。例: 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
の値は、クラスタのアプリケーション レイヤ シークレットの暗号化に GKE on AWS が使用する、AWS KMS 鍵の Amazon リソース名(ARN)またはキー エイリアスを含む文字列です。例: 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
このフィールドは、目的の 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 のサブセットにする必要があります。アベイラビリティ ゾーンごとに 1 つのサブネットが必要です。 |
list(string) |
[10.0.101.0/24, 10.0.102.0/24] |
publicSubnetCIDRBlocks | 各アベイラビリティ ゾーンの VPC 内の、パブリック サブネットの CIDR ブロック。vpcCIDRBlock のサブセットにする必要があります。アベイラビリティ ゾーンごとに 1 つのサブネットが必要です。 |
list(string) |
[10.0.1.0/24, 10.0.2.0/24] |
bastionAllowedSSHCIDRBlocks | 受信 SSH アクセスを許可する CIDR ブロック。AWS 1.5 では、GKE でこのフィールドのサポートが終了しています。バージョン 1.5 以降では、spec.bastionHost を使用します。 |
string |
[104.132.0.0/14] |
spec.existingVPC
spec.existingVPC
の下のフィールドで、既存の AWS VPC を使用するように GKE on AWS を構成します。
名前 | 説明 | 型 | 例 |
---|---|---|---|
subnetID | 管理サービスが実行されるサブネット ID。 | string |
subnet-00123456789ab |
allowedSSHSecurityGroupIDs | VPC 内で SSH アクセスが許可されているセキュリティ グループ ID のリスト。 | リスト(文字列) | [sg-00123456789abcd, sg-00123456789def1] |
spec.googleCloud
spec.googleCloud
の下のフィールドで、 Google Cloud プロジェクトと IAM サービス アカウントキーを構成します。
名前 | 説明 | 型 | 例 |
---|---|---|---|
プロジェクト ID | Google Cloud 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 | EBS ボリュームの暗号化に使用される AWS KMS 鍵の ARN。詳細については、顧客管理の CMK を使用したボリュームの暗号化をご覧ください。 | string |
arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee |
いいえ |
spec.tags
名前 | 説明 | 型 | 例 |
---|---|---|---|
tags | 管理サービスをサポートする各 AWS リソースに割り当てられた Key-Value メタデータ(省略可)。 | map(string) |
{Environment: Production, Team: Analytics} |
spec.proxy
spec.proxy
フィールドはオプションの HTTP / HTTPS プロキシを構成します。
名前 | 説明 | 型 | 例 |
---|---|---|---|
プロキシ | プロキシ構成ファイルへのパス。 | 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 | Terraform が構成データを保存する既存の Google Cloud Storage バケットを指定する省略可能なフィールド。 | string |
example-GCS-bucket |