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 Steuerungsebenespec.dataVolume
für die Datenlaufwerk-Volumes der Steuerungsebenespec.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 |