AWSManagementService

Die Ressource AWSManagementService enthält Konfigurationsinformationen für Ihren GKE on AWS-Verwaltungsdienst.

Sie konfigurieren eine YAML-Datei mit dem Namen anthos-gke.yaml, bevor Sie den Verwaltungsdienst erstellen. Das anthos-gke-Tool verwendet die Konfiguration beim Erstellen des Verwaltungsdienstes.

Der Inhalt der anthos-gke.yaml-Datei hängt davon ab, ob Sie mit anthos-gke eine dedizierte AWS-VPC (Virtual Private Cloud) erstellen oder eine vorhandene AWS-VPC verwenden.

Dedizierte 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

Vorhandene 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

In den folgenden Abschnitten werden diese Felder beschrieben.

spec.version

Der Wert von spec.version ist die Version des Verwaltungsdienstes, der von anthos- gke erstellt wird. Die Version entspricht der Ausgabe von anthos-gke version. Beispiel: aws-1.14.1-gke.0.

spec.region

Der Wert für spec.region ist die AWS-Region, in der Sie den verwalteten Dienst bereitstellen möchten. Beispiel: us-east-1

spec.authentication.awsIAM

Der Wert von spec.authentication.awsIAM.adminIdentityARNs ist ein String mit dem Amazon-Ressourcennamen (ARN) eines AWS IAM-Nutzers mit Berechtigungen zum Erstellen eines GKE on AWS-Verwaltungsdienstes. Beispiel: arn:aws:iam::123456789:user/someuser.

spec.kmsKeyARN

Der Wert von spec.kmsKeyARN ist ein String mit dem Amazon-Ressourcennamen (ARN) oder ein Alias des AWS KMS-Schlüssels, der unter Voraussetzungen erstellt wurde. GKE on AWS verwendet den Schlüssel für die Envelope-Verschlüsselung. Beispiel: arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee.

spec.databaseEncryption

Der Wert von spec.databaseEncryption.kmsKeyARN ist ein String mit dem Amazon-Ressourcennamen (ARN) oder Schlüsselalias des AWS KMS-Schlüssels, den GKE on AWS zum Verschlüsseln von Secrets auf Anwendungsebene in Clustern verwendet. Beispiel: arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee

spec.securityGroupIDs

Der Wert von spec.securityGroupIDs ist eine Liste zusätzlicher AWS-Sicherheitsgruppen-IDs, die der VM des verwalteten Dienstes zugewiesen sind. Beispiel [sg-00123456789abcd, sg-00123456789def1]`.

spec.dedicatedVPC

Dieses Feld gibt die gewünschten VPC-Einstellungen an.

Name Beschreibung Typ Beispiel
vpcCIDRBlock Der CIDR-Block der gewünschten AWS-VPC. Muss zwischen /16 und /28 Bit liegen. string 10.0.0.0/16
availabilityZones Verfügbarkeitszonen, in denen Steuerungsebenenreplikate bereitgestellt werden. Jede Zone hat ein eigenes Subnetz und benötigt einen separaten CIDR-Block. list(string) [us-east-1a, us-east-1b]
privateSubnetCIDRBlocks CIDR-Block für private Subnetze innerhalb der VPC in jeder Verfügbarkeitszone. Muss eine Teilmenge von vpcCIDRBlock sein. Sie benötigen ein Subnetz pro Verfügbarkeitszone. list(string) [10.0.101.0/24, 10.0.102.0/24]
publicSubnetCIDRBlocks CIDR-Block für öffentliche Subnetze innerhalb der VPC in jeder Verfügbarkeitszone. Muss eine Teilmenge von vpcCIDRBlock sein. Sie benötigen ein Subnetz pro Verfügbarkeitszone. list(string) [10.0.1.0/24, 10.0.2.0/24]
bastionAllowedSSHCIDRBlocks CIDR-Blöcke, von denen eingehender SSH-Zugriff zugelassen wird. Dieses Feld ist in GKE on AWS 1.5 nicht verfügbar. Verwenden Sie spec.bastionHost in Version 1.5 oder höher. string [104.132.0.0/14]

spec.existingVPC

Felder unter spec.existingVPC konfigurieren GKE on AWS für die Verwendung einer vorhandenen AWS-VPC.

Name Beschreibung Typ Beispiel
subnetID Subnetz-ID, in der der Verwaltungsdienst ausgeführt wird. string subnet-00123456789ab
allowedSSHSecurityGroupIDs Liste der Sicherheitsgruppen-IDs, die SSH-Zugriff innerhalb der VPC erlauben. list(string) [sg-00123456789abcd, sg-00123456789def1]

spec.googleCloud

Konfigurieren Sie unter spec.googleCloud Ihr Google Cloud Projekt und die IAM-Dienstkontoschlüssel.

Name Beschreibung Typ Beispiel
projectID Google Cloud Google Cloud -Projekt. string my-gcp-project-id
serviceAccountKeys Dateipfade zu den Dienstkontoschlüsseln. serviceAccountKeys

spec.googleCloud.serviceAccountKeys

Felder unter spec.googleCloud.serviceAccountKeys enthalten lokale Dateipfade zu den GCP-Dienstkontoschlüsseln. Ausführliche Beschreibungen der einzelnen Schlüssel finden Sie unter Voraussetzungen.

Name Beschreibung Typ Beispiel
managementService Dienstkontoschlüssel, der vom Verwaltungscluster verwendet wird string path/to/key/management-sa-key.json
connectAgent Dienstkontoschlüssel, der vom GKE Hub Connect-Agent verwendet wird string path/to/key/hub-sa-key.json
node Dienstkontoschlüssel, der von den Knoten verwendet wird String path/to/key/node-sa-key.json

spec.iam

Konfigurieren Sie unter spec.iam optionale AWS IAM-Parameter für Ihre GKE on AWS-Umgebung.

Name Beschreibung Typ Beispiel
permissionsBoundary ARN der Berechtigungsgrenzen für IAM-Rollen string arn:aws:iam::126285863215:policy/testPolicyBoundary
path Pfad zur IAM-Rolle string /org_abc/team_abc/member_abc/

spec.bastionHost

Der spec.bastionHost-Abschnitt ist optional und beschreibt einen Bastion Host.

Ein Bastion Host ist eine EC2-Instanz, die in einem öffentlichen Subnetz platziert wird. Sie ermöglicht eingehenden SSH-Zugriff von einem angegebenen CIDR-Block und hat ausgehenden SSH-Zugriff auf Ihrem verwalteten Dienst von GKE on AWS und Nutzercluster.

Sie können einen Bastion Host für die Installation von dedicatedVPC oder existingVPC erstellen. Das allowedSSHCIDRBlocks-Feld gibt den zulässigen Adressbereich an und darf nicht leer sein.

Wenn kein Bastion Host vorhanden ist, erstellt GKE on AWS einen neuen Bastion Host.

  • Für eine dedicatedVPC-Installation erstellt GKE on AWS ein Subnetz.
  • Für eine existingVPC-Installation müssen Sie ein Subnetz für den Bastion Host angeben und dafür sorgen, dass dieses Subnetz eine Verbindung zu Ihrer VPC hat.

Sie können den Bastion Host ändern, indem Sie das Feld spec.bastionHost ändern oder löschen und anthos-gke aws management init ausführen, gefolgt von anthos-gke aws management apply.

Name Beschreibung Typ Beispiel
subnetID Die ID des Subnetzes, in dem der Bastion Host ausgeführt wird. Bei existingVPC-Installationen muss das Subnetz eingehenden Traffic von dort zulassen, von dem aus Sie auf Port 22 darauf zugreifen. Achten Sie außerdem darauf, dass Ihre VPC eingehenden Traffic von diesem Subnetz zulässt. Geben Sie bei dedicatedVPC-Installationen dieses Feld nicht an. GKE on AWS stellt das Subnetz mit dem erforderlichen Zugriff bereit. string subnet-003bdf7b0f5e21e45
allowedSSHCIDRBlocks CIDR-Blöcke, von denen eingehender SSH-Zugriff zugelassen wird. list(string) [104.132.0.0/14]
rootVolume Ein Objekt, das das Root-Volume des Bastion Host beschreibt. object {volumeType: gp2}

spec.rootVolume, spec.dataVolume und spec.bastionHost.rootVolume

In der folgenden Tabelle werden allgemeine Felder für die folgenden Objekte beschrieben:

  • spec.rootVolume für Rootlaufwerk-Volumes der Steuerungsebene
  • spec.dataVolume für die Datenlaufwerk-Volumes der Steuerungsebene
  • spec.bastionHost.rootVolume für Bastion Host-Rootlaufwerk-Volumes
Name Beschreibung Typ Beispiel Erforderlich
volumeType Der EBS-Volume-Typ von AWS. Kann gp2 (Standard) oder gp3 sein. string gp2 no
IOPS Die Menge der bereitgestellten E/A-Vorgänge pro Sekunde (IOPS) für Volumes. Nur gültig, wenn volumeType GP3 ist. Weitere Informationen finden Sie unter Allgemeine SSD-Volumes (gp3). integer 5000 no
kmsKeyARN Der ARN des AWS KMS-Schlüssels, der zum Verschlüsseln des EBS-Volumes verwendet wird. Weitere Informationen finden Sie unter Vom Kunden verwaltete CMK zum Verschlüsseln von Volumes verwenden. string arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee no

spec.tags

Name Beschreibung Typ Beispiel
Tags Optionale Schlüssel/Wert-Metadaten, die jeder AWS-Ressource zugewiesen werden, die den Verwaltungsdienst unterstützt. map(string) {Environment: Production, Team: Analytics}

spec.proxy

Das spec.proxy-Feld konfiguriert einen optionalen HTTP-/HTTPS-Proxy.

Name Beschreibung Typ Beispiel
proxy Pfad zur Proxy-Konfigurationsdatei. Relativer Pfad von anthos-gke.yaml proxy.json

spec.bootstrapS3Bucket

Das Feld spec.bootstrapS3Bucket konfiguriert einen S3-Bucket-Namen für GKE on AWS.

Name Beschreibung Typ Beispiel
bootstrapS3Bucket Optionales Feld für den Namen des AWS S3-Buckets, in dem GKE on AWS Konfigurationsinformationen speichert Wenn Sie mehrere GKE on AWS-Verwaltungsdienste in derselben AWS-Region erstellen möchten, geben Sie einen eindeutigen Bucket-Namen an. string example-s3-bucket

spec.terraform

Im Feld spec.terraform.invokeManually wird der Befehl anthos-gke so konfiguriert, dass kein Verwaltungsdienst erstellt wird.

Name Beschreibung Typ Beispiel
invokeManually Optionales Feld, das das anthos-gke-Befehlszeilentool so konfiguriert, dass nach dem Erstellen und Validieren der Konfiguration kein Verwaltungsdienst erstellt wird. Wenn Sie invokeManually auf Yes setzen, können Sie die Terraform-Konfigurationsdateien manuell bearbeiten und anwenden. Yes, No Yes
stateGCSBucket Optionales Feld, das einen vorhandenen Google Cloud Storage-Bucket angibt, in dem Terraform seine Konfigurationsdaten speichern soll. string example-GCS-bucket