AWS の Anthos クラスタ(GKE on AWS)の新しいバージョンが 3 月 31 日にリリースされました。詳細については、リリースノートをご覧ください。

AWSManagementService

AWSManagementService リソースには、Anthos clusters on AWS(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:
    sizeGiB: ROOT_VOLUME_SIZE
    volumeType: ROOT_VOLUME_TYPE
    iops: ROOT_VOLUME_IOPS
    kmsKeyARN: ROOT_VOLUME_KEY
  ubuntuRepositoryMirror: 'packages.cloud.google.com'
  tags:
    tag-name: tag-value
  bastionHost:
    allowedSSHCIDRBlocks:
    - SSH_CIDR_BLOCK
    rootVolume:
      sizeGiB: ROOT_VOLUME_SIZE
      volumeType: ROOT_VOLUME_TYPE
      iops: ROOT_VOLUME_IOPS
      kmsKeyARN: ROOT_VOLUME_KEY
  bootstrapS3Bucket: BOOTSTRAP_S3_BUCKET
  proxy: PROXY_JSON_FILE
  terraform:
    invokeManually: No

既存の 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:
    sizeGiB: ROOT_VOLUME_SIZE
    volumeType: ROOT_VOLUME_TYPE
    iops: ROOT_VOLUME_IOPS
    kmsKeyARN: ROOT_VOLUME_KEY
  ubuntuRepositoryMirror: 'packages.cloud.google.com'
  bastionHost:
    subnetID: [BASTION_HOST_SUBNET_ID]
    allowedSSHCIDRBlocks:
    - [SSH_CIDR_BLOCK]
    rootVolume:
      sizeGiB: ROOT_VOLUME_SIZE
      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

以降のセクションで、各フィールドについて説明します。

spec.version

spec.version の値は、anthos- gke が作成する管理サービスのバージョンです。バージョンは anthos-gke version の出力と一致します。例: aws-1.7.0-gke.11

spec.region

spec.region の値は、管理サービスをデプロイする AWS リージョンです。例: us-east-1

spec.authentication.awsIAM

spec.authentication.awsIAM.adminIdentityARNs の値は、Anthos clusters on AWS 管理サービスを作成するための権限を持つ AWS IAM ユーザーの Amazon リソース名(ARN)を含む文字列です。例: arn:aws:iam::123456789:user/someuser

spec.kmsKeyARN

spec.kmsKeyARN の値は、Amazon リソース名(ARN)または前提条件で作成された AWS KMS 鍵のエイリアスを持つ文字列です。Anthos clusters on AWS は、エンベロープ暗号化に鍵を使用します。例: arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee

spec.databaseEncryption

spec.databaseEncryption.kmsKeyARN の値は、クラスタのアプリケーション レイヤ シークレットの暗号化に Anthos clusters 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 ブロック。Anthos clusters on AWS 1.5 では、このフィールドのサポートは終了しています。バージョン 1.5 以降では、spec.bastionHost を使用します。 string [104.132.0.0/14]

spec.existingVPC

spec.existingVPC の下にあるフィールドで、既存の AWS VPC を使用するように Anthos clusters 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 クラウド プロジェクト。 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 の下のフィールドで、Anthos clusters 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 アクセスを許可し、AWS 管理サービスとユーザー クラスタ上の Anthos クラスタへのアウトバウンド SSH アクセスが可能になります。

踏み台インスタンスは、dedicatedVPCexistingVPC のいずれかのインストール用に作成できます。allowedSSHCIDRBlocks フィールドは許可されたアドレスの受信範囲を指定します。空にすることはできません。

踏み台インスタンスが存在しない場合、Anthos clusters on AWS は新しい踏み台インスタンスを作成します。

  • dedicatedVPC インストールの場合、Anthos clusters on AWS はサブネットを作成します。
  • existingVPC インストールの場合、踏み台インスタンスのサブネットを指定し、このサブネットが VPC に接続できることを確認する必要があります。

踏み台インスタンスを変更するには、spec.bastionHost フィールドを変更または削除し、anthos-gke aws management init を実行してから anthos-gke aws management apply を実行します。

名前 説明
subnetID 踏み台インスタンスが動作するサブネットの ID。existingVPC インストールの場合、ポート 22 でアクセスする踏み台インスタンスからの上り(内向き)を、サブネットで許可する必要があります。また、VPC でこのサブネットからの受信アクセスが許可されていることを確認してください。dedicatedVPC インストールの場合、このフィールドを指定しないでください。Anthos clusters on AWS は、必要なアクセス権を使用してサブネットをプロビジョニングします。 文字列 subnet-003bdf7b0f5e21e45
allowedSSHCIDRBlocks 受信 SSH アクセスを許可する CIDR ブロック。 list(string) [104.132.0.0/14]
rootVolume 踏み台インスタンスを表すオブジェクトはルート ボリューム object {sizeGiB: 10}

spec.rootVolume と spec.bastionHost.rootVolume

これらのフィールドは spec.rootVolumespec.bastionHost.rootVolume の両方に適用されます。

名前 説明 必須
sizeGiB ルート ボリュームのサイズ(GB)。 integer 10
volumeType コントロール プレーン ノードの AWS EBS ボリューム タイプgp2(デフォルト)または gp3 を指定できます。 string gp2 ×
iops ボリュームに対してプロビジョニングされた IO オペレーション/秒(IOPS)の量。volumeTypeGP3 の場合のみ有効です。詳細については、汎用 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.ubuntuRepositoryMirror

spec.ubuntuRepositoryMirror の値は、apt Package Repository のオプションのドメイン名です。

名前 説明
ubuntuRepositoryMirror apt パッケージ リポジトリのドメイン名(省略可)。このフィールドは、空の文字列または packages.cloud.google.com にある Google がホストするミラーとしてのみ設定できます。他のドメインは使用できません。Google がホストするミラーを使用するには、限定公開の Google アクセスも有効にする必要があります。 string packages.cloud.google.com

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 フィールドは、Anthos clusters on AWS の S3 バケット名を構成します。

名前 説明
bootstrapS3Bucket Anthos clusters on AWS が構成情報を格納する AWS S3 バケット名のオプションのフィールド。同じ AWS リージョン内に複数の Anthos clusters on AWS 管理サービスを作成する場合は、この値を一意のバケット名に設定します。 string example-s3-bucket

spec.terraform

spec.terraform.invokeManually フィールドは、管理サービスを作成しないように anthos-gke コマンドを構成します。

名前 説明
invokeManually 構成のビルドと検証後に管理サービスを作成しないように anthos-gke コマンドライン ツールを構成するオプション フィールド。invokeManuallyYes に設定した場合、Terraform 構成ファイルを手動で編集して適用できます。 YesNo Yes