Das in dieser Dokumentation beschriebene Produkt Anthos-Cluster in AWS (vorherige Generation) befindet sich jetzt im Wartungsmodus. Alle neuen Installationen müssen Anthos-Cluster in AWS der aktuellen Generation verwenden.
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
In diesem Thema werden die Konfigurationsoptionen der benutzerdefinierten Ressourcendefinition von AWSCluster beschrieben.
AWSCluster definieren
AWSCluster ist eine benutzerdefinierte Kubernetes-Ressource, die von GKE on AWS definiert wird. Diese Ressource stellt eine Steuerungsebene von GKE on AWS dar.
Um einen Cluster aus dieser Vorlage zu erstellen, kopieren Sie die folgende YAML und ergänzen Sie die markierten Werte in den Felddefinitionen spec.networking und spec.controlPlane. Wenden Sie anschließend das Ressourcenmanifest auf Ihren Verwaltungsdienst an.
apiVersion:multicloud.cluster.gke.io/v1kind:AWSClustermetadata:name:CLUSTER_NAMEspec:region:AWS_REGIONnetworking:vpcID:VPC_IDpodAddressCIDRBlocks:POD_ADDRESS_CIDR_BLOCKSserviceAddressCIDRBlocks:SERVICE_ADDRESS_CIDR_BLOCKSserviceLoadBalancerSubnetIDs:SERVICE_LOAD_BALANCER_SUBNETScontrolPlane:version:GKE_VERSION# Latest version is 1.25.5-gke.2100instanceType:AWS_INSTANCE_TYPEkeyName:SSH_KEY_NAMEsubnetIDs:-CONTROL_PLANE_SUBNET_IDSsecurityGroupIDs:-CONTROL_PLANE_SECURITY_GROUPSiamInstanceProfile:CONTROL_PLANE_IAM_ROLEdatabaseEncryption:kmsKeyARN:ARN_OF_KMS_KEYhub:membershipName:ANTHOS_CONNECT_NAMEcloudOperations:# OptionalprojectID:YOUR_PROJECTlocation:GCP_LOCATIONenableLogging:ENABLE_LOGGINGenableMonitoring:ENABLE_MONITORINGtags:TAG_KEY:TAG_VALUEproxySecretName:PROXY_SECRET_NAMEworkloadIdentity:oidcDiscoveryGCSBucket:WORKLOAD_IDENTITY_BUCKETrootVolume:# OptionalsizeGiB:ROOT_VOLUME_SIZEvolumeType:ROOT_VOLUME_TYPEiops:ROOT_VOLUME_IOPSkmsKeyARN:ROOT_VOLUME_KEYetcd:# OptionalmainVolume:sizeGiB:ETCD_VOLUME_SIZEvolumeType:ETCD_VOLUME_TYPEiops:ETCD_VOLUME_IOPSkmsKeyARN:ETCD_VOLUME_KEYauthentication:awsIAM:adminIdentityARNs:ADMIN_IAM_ARNoidc:# Optional-certificateAuthorityData:CERTIFICATE_STRINGclientID:CLIENT_IDclientSecret:CLIENT_SECRETextraParams:EXTRA_PARAMSgroupsClaim:GROUPS_CLAIMgroupPrefix:GROUP_PREFIXissuerURI:ISSUER_URLkubectlRedirectURI:KUBECTL_REDIRECT_URLscopes:SCOPESuserClaim:USER_CLAIMuserPrefix:USER_PREFIX
Die untergeordneten Felder von spec sind in den folgenden Abschnitten beschrieben.
spec.networking
Dieses Objekt definiert eine clusterweite Netzwerkkonfiguration.
Name
Beschreibung
Typ
Beispiel
Erforderlich
vpcID
Die ID der VPC, in der Ihr Cluster ausgeführt wird. Die Steuerungsebene und die Knotenpools eines Nutzerclusters werden in einer einzelnen VPC ausgeführt.
string
vpc-0814934042d983118
Ja
podAddressCIDRBlocks
Bereich der IPv4-Adressen, der von den Pods des Clusters verwendet wird. Derzeit wird nur ein Bereich unterstützt. Der Bereich darf sich nicht mit Subnetzen überschneiden, die von Ihrem Netzwerk erreichbar sind. Sie können denselben Bereich für mehrere unterschiedliche AWSCluster-Objekte verwenden.
list(string)
[10.1.0.0/16]
Ja
serviceAddressCIDRBlocks
Bereich der IPv4-Adressen, der von den Diensten des Clusters verwendet wird. Derzeit wird nur ein Bereich unterstützt. Der Bereich darf sich nicht mit Subnetzen überschneiden, die von Ihrem Netzwerk erreichbar sind. Sie können denselben Bereich für mehrere unterschiedliche AWSCluster-Objekte verwenden.
list(string)
[10.2.0.0/16]
Ja
serviceLoadBalancerSubnetIDs
Subnetz-IDs, in denen GKE on AWS öffentliche oder private Load-Balancer erstellen kann. GKE on AWS wendet Tags auf jedes dieser Subnetze an, um das Load-Balancing zu unterstützen. Die ALB-Unterstützung erfordert mehr als ein angegebenes Subnetz.
list(string)
[subnet-abcdefg, subnet-12345678]
spec.controlPlane
Dieses Objekt enthält allgemeine Parameter für die Steuerungsebene des Clusters.
Das AWS-EC2-Schlüsselpaar, das jedem Replikat der Steuerungsebene zugewiesen ist.
string
my-key-pair
Ja
subnetIDs
Eine Liste der VPC-Subnetze für Replikate der Steuerungsebene.
list(string)
[subnet-06a004869a1eae947]
Ja
securityGroupIDs
GKE on AWS erstellt automatisch Sicherheitsgruppen mit den erforderlichen Regeln für einen funktionierenden Cluster. Wenn Sie weitere Sicherheitsgruppen hinzufügen möchten, die Zugriff auf Replikate der Steuerungsebene haben, fügen Sie deren IDs zu securityGroupIDs hinzu.
Schlüssel/Wert-Metadaten, die jeder AWS-Ressource zugewiesen sind, die den AWSCluster unterstützt. Weitere Informationen finden Sie unter Best Practices für die Tag-Kennzeichnung.
map(string)
{Environment: Production, Team: Analytics}
no
proxySecretName
Vom Nutzer ausgewählter Name eines Secrets, mit dem clusterspezifische Netzwerk-Proxys definiert werden
String
proxy-secret-0
no
workloadIdentity
Cloud Storage-Bucket für die Konfiguration von Workload Identity. Enthält ein einzelnes Feld: oidcDiscoveryGCSBucket.
object
{oidcDiscoveryGCSBucket: my-bucket}
no
rootVolume
Parameter für Replikat-Root-Volumes der Steuerungsebene. Enthält ein im folgenden Abschnitt definiertes Objekt.
object
{sizeGiB: 10}
Ja
etcd
Parameter für etcd-Volumes. Enthält ein im folgenden Abschnitt definiertes Objekt.
object
{sizeGiB: 10}
Ja
spec.controlPlane.rootVolume und spec.etcd.rootVolume
Diese Felder gelten sowohl für spec.controlPlane.rootVolume als auch für spec.etcd.mainVolume.
Name
Beschreibung
Typ
Beispiel
Erforderlich
sizeGiB
Größe des Root-Volumes in Gigabyte.
integer
10
Ja
volumeType
AWS-EBS-Volume-Typ des Steuerungsebenenknotens. 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 volumeTypeGP3 ist. Weitere Informationen finden Sie unter Allgemeine SSD-Volumes (gp3).
Mit diesem Objekt werden Rollen angegeben, denen mit AWS-IAM Zugriff als Clusteradministrator gewährt wird.
Name
Beschreibung
Typ
Beispiel
Erforderlich
adminIdentityARNs
ARN von AWS-IAM-Nutzern oder -Rollen, denen Zugriff als Clusteradministrator gewährt wurde
String
arn:aws:iam::123456789012:user/admin
Nur erforderlich bei Verwendung der AWS-IAM-Authentifizierung.
spec.authentication.oidc
Sie können mehrere oidc-Objekte angeben. Das oidc-Objekt ist unten definiert.
Weitere Informationen finden Sie unter Mit OIDC authentifizieren.
Feld
Erforderlich
Beschreibung
Format
certificateAuthorityData
Nein
Ein base64-codiertes PEM-codiertes Zertifikat für den OIDC-Anbieter. Codieren Sie das Zertifikat, einschließlich der Header, in base64, um den String zu erstellen. Fügen Sie den resultierenden String in certificateAuthorityData als eine Zeile ein. Beispiel:
certificateAuthorityData: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT==
String
clientID
Ja
Die ID für die Clientanwendung, die Authentifizierungsanfragen an den OpenID-Anbieter sendet.
String
clientSecret
Nein
Gemeinsames Secret von OIDC-Clientanwendung und OIDC-Anbieter.
String
extraParams
Nein
Zusätzliche Schlüssel/Wert-Parameter, die an den OpenID-Anbieter gesendet werden. Wenn Sie eine Gruppe autorisieren, übergeben Sie resource=token-groups-claim.
Wenn Ihr Autorisierungsserver zur Einwilligung auffordert, legen Sie für die Authentifizierung mit Microsoft Azure und Okta extraParams auf prompt=consent fest. Legen Sie für Google Cloud Identity extraParams auf prompt=consent,access_type=offline fest.
Durch Kommas getrennte Liste
groupsClaim
Nein
Die JWT-Anforderung, mit der der Anbieter Ihre Sicherheitsgruppen zurückgibt.
String
groupPrefix
Nein
Das Präfix, das Gruppenanforderungen vorangestellt wird, um Konflikte mit vorhandenen Namen zu vermeiden.
Beispiel: Aus der Gruppe "foobar" und dem Präfix "gid-" resultiert "gid-foobar".
String
issuerURI
Ja
Die URL, über die Autorisierungsanfragen an Ihren OpenID-Anbieter gesendet werden, z. B. https://example.com/adfs. Der Kubernetes API-Server verwendet diese URL, um öffentliche Schlüssel zum Verifizieren von Tokens festzustellen. Für den URI muss HTTPS verwendet werden.
URL String
kubectlRedirectURI
Ja
Die für die Autorisierung verwendete Weiterleitungs-URL "kubectl".
URL String
Umfang
Ja
Zusätzliche Bereiche, die an den OpenID-Anbieter gesendet werden. Microsoft Azure und Okta benötigen den Bereich offline_access.
Durch Kommas getrennte Liste
userClaim
Nein
Die JWT-Anforderung, die als Nutzername verwendet wird. Der Standardwert ist "sub". Dies ist eine eindeutige ID des Endnutzers. Je nach OpenID-Anbieter können Sie andere Anforderungen auswählen, beispielsweise E-Mail-Adresse oder Name. Allerdings wird anderen Anforderungen als der E-Mail-Adresse die Aussteller-URL vorangestellt, um Namenskonflikte zu vermeiden.
String
userPrefix
Nein
Das Präfix, das Nutzernamensanforderungen vorangestellt wird, um Konflikte mit vorhandenen Namen zu vermeiden.
Wenn Sie dieses Feld nicht angeben und der Nutzername ein anderer Wert als eine E-Mail-Adresse ist, wird das Präfix standardmäßig auf issuerurl# gesetzt. Wenn Sie userPrefix auf - setzen, ist das Präfix deaktiviert.