Le produit décrit dans cette documentation, Anthos Clusters on AWS (génération précédente), est désormais en mode de maintenance. Toutes les nouvelles installations doivent utiliser le produit de génération actuelle, Anthos Clusters on AWS.
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Cet article décrit les options de configuration de la définition de ressource personnalisée AWSCluster.
Définir un AWSCluster
AWSCluster est une ressource personnalisée Kubernetes définie par GKE sur AWS. Cette ressource représente un plan de contrôle GKE sur AWS.
Pour créer un cluster à partir de ce modèle, copiez le code YAML suivant et renseignez les valeurs en surbrillance définies dans les spécifications de champs spec.networking et spec.controlPlane. Appliquez ensuite le fichier manifeste de la ressource à votre service de gestion.
Les sous-champs sous spec sont décrits dans les sections suivantes.
spec.networking
Cet objet définit la configuration de mise en réseau à l'échelle du cluster.
Nom
Description
Type
Exemple
Obligatoire
vpcID
ID du VPC dans lequel votre cluster s'exécute. Le plan de contrôle et les pools de nœuds d'un cluster d'utilisateur s'exécutent dans un seul VPC.
string
vpc-0814934042d983118
Oui
podAddressCIDRBlocks
Plage d'adresses IPv4 utilisées par les pods du cluster. Actuellement, une seule plage est acceptée. La plage ne doit chevaucher aucun sous-réseau accessible depuis votre réseau. Vous pouvez utiliser la même plage en toute sécurité sur plusieurs objets AWSCluster différents.
list(string)
[10.1.0.0/16]
Oui
serviceAddressCIDRBlocks
Plage d'adresses IPv4 utilisées par les services du cluster. Actuellement, une seule plage est acceptée. La plage ne doit chevaucher aucun sous-réseau accessible depuis votre réseau. Vous pouvez utiliser la même plage en toute sécurité sur plusieurs objets AWSCluster différents.
list(string)
[10.2.0.0/16]
Oui
serviceLoadBalancerSubnetIDs
ID de sous-réseau où GKE sur AWS peut créer des équilibreurs de charge publics ou privés. GKE sur AWS applique des tags à chacun de ces sous-réseaux pour assurer l'équilibrage de charge. La compatibilité avec l'ALB nécessite plusieurs sous-réseaux spécifiés.
list(string)
[subnet-abcdefg, subnet-12345678]
spec.controlPlane
Cet objet inclut des paramètres courants pour le plan de contrôle du cluster.
Un type d'instance EC2 AWS pour chaque instance dupliquée du plan de contrôle. Consultez la section Types d'instances compatibles.
string
m5.large
Oui
keyName
Paire de clés EC2 AWS attribuée à chaque instance dupliquée du plan de contrôle.
string
my-key-pair
Oui
subnetIDs
Liste de sous-réseaux VPC pour les instances dupliquées du plan de contrôle.
list(string)
[subnet-06a004869a1eae947]
Oui
securityGroupIDs
GKE sur AWS crée automatiquement des groupes de sécurité avec des règles minimales requises pour un cluster opérationnel. Si vous souhaitez ajouter des groupes de sécurité supplémentaires avec accès aux instances dupliquées du plan de contrôle, ajoutez leurs ID à securityGroupIDs.
list(string)
[sg-0ec06559d997a796f]
no
iamInstanceProfile
Nom du profil d'instance EC2 d'AWS attribué aux instances dupliquées du plan de contrôle.
string
my-control-plane-profile
Oui
databaseEncryption.kmsKeyARN
Nom de ressource Amazon (ARN) de la clé KMS AWS utilisée par GKE sur AWS pour chiffrer les secrets de la couche d'application dans les clusters.
Métadonnées clé/valeur attribuées à chaque ressource AWS prenant en charge AWSCluster. Pour en savoir plus, consultez l'article Bonnes pratiques en matière de balisage.
map(string)
{Environment: Production, Team: Analytics}
no
proxySecretName
Nom d'un secret choisi par l'utilisateur pour définir les proxys réseau spécifiques au cluster
chaîne
proxy-secret-0
no
workloadIdentity
Bucket Cloud Storage pour la configuration de Workload Identity. Contient un seul champ : oidcDiscoveryGCSBucket.
object
{oidcDiscoveryGCSBucket: my-bucket}
no
rootVolume
Paramètres des volumes racine de l'instance dupliquée du plan de contrôle. Contient un objet défini dans la section suivante.
object
{sizeGiB: 10}
Oui
etcd
Paramètres des volumes etcd. Contient un objet défini dans la section suivante.
object
{sizeGiB: 10}
Oui
spec.controlPlane.rootVolume et spec.etcd.rootVolume
Ces champs s'appliquent à la fois à spec.controlPlane.rootVolume et à spec.etcd.mainVolume.
Nom
Description
Type
Exemple
Requis
sizeGiB
Taille du volume racine en gigaoctets.
integer
10
Oui
volumeType
Type de volume EBS AWS du nœud de plan de contrôle. Peut être gp2 (par défaut), ou gp3.
string
gp2
no
iops
Nombre d'opérations d'E/S par seconde (IOPS) provisionné pour les volumes. Valable uniquement lorsque la valeur de volumeType est GP3. Pour plus d'informations, consultez la section Volumes SSD à usage général (gp3).
Cet objet spécifie les rôles auxquels un administrateur de cluster a accès avec IAM AWS.
Nom
Description
Type
Exemple
Obligatoire
adminIdentityARNs
ARN des utilisateurs ou des rôles IAM AWS qui disposent d'un accès administrateur de cluster.
chaîne
arn:aws:iam::123456789012:user/admin
Obligatoire uniquement si vous utilisez l'authentification IAM AWS.
spec.authentication.oidc
Vous pouvez spécifier plusieurs objets oidc. L'objet oidc est défini ci-dessous.
Pour plus d'informations, consultez la section S'authentifier avec OIDC.
Champ
Obligatoire
Description
Format
certificateAuthorityData
Non
Certificat encodé au format PEM encodé en base64 pour le fournisseur OIDC. Pour créer la chaîne, encodez le certificat, y compris les en-têtes, en base64. Incluez la chaîne obtenue dans certificateAuthorityData en tant que ligne unique. Exemple : certificateAuthorityData: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT==
Chaîne
clientID
Oui
ID de l'application cliente qui envoie des requêtes d'authentification au fournisseur OpenID.
Chaîne
clientSecret
Non
Clé secrète partagée entre l'application cliente OIDC et le fournisseur OIDC.
Chaîne
extraParams
Non
Paramètres de clé-valeur supplémentaires à envoyer au fournisseur OpenID. Si vous autorisez un groupe, transmettez resource=token-groups-claim.
Si votre serveur d'autorisation vous demande l'autorisation, pour l'authentification avec Microsoft Azure et Okta, définissez extraParams sur prompt=consent. Pour Google Cloud Identity, définissez extraParams sur prompt=consent,access_type=offline.
Liste d'éléments séparés par une virgule
groupsClaim
Non
Revendication JWT que le fournisseur utilise pour renvoyer vos groupes de sécurité.
Chaîne
groupPrefix
Non
Préfixe ajouté aux revendications de groupe pour éviter les conflits avec les noms existants.
Par exemple, pour un groupe foobar et un préfixe gid- donnés, gid-foobar.
Chaîne
issuerURI
Oui
URL où les requêtes d'autorisation sont envoyées à votre OpenID, telle que https://example.com/adfs. Le serveur de l'API Kubernetes utilise cette URL pour découvrir les clés publiques permettant de valider les jetons. L'URI doit utiliser le protocole HTTPS.
Chaîne d'URL
kubectlRedirectURI
Oui
L'URL de redirection que "kubectl" utilise pour l'autorisation.
Chaîne d'URL
scopes
Oui
Niveaux d'accès supplémentaires à envoyer au fournisseur OpenID. Microsoft Azure et Okta nécessitent le niveau d'accès offline_access.
Liste d'éléments séparés par une virgule
userClaim
Non
Revendication JWT à utiliser comme nom d'utilisateur. La valeur par défaut est "sub", qui est censée correspondre à un identifiant unique de l'utilisateur final. Vous pouvez choisir d'autres revendications, telles que l'e-mail ou le nom, en fonction du fournisseur OpenID. Toutefois, les revendications autres que l'e-mail sont précédées de l'URL de l'émetteur pour éviter les conflits de noms.
Chaîne
userPrefix
Non
Préfixe ajouté aux revendications de nom d'utilisateur pour éviter les conflits avec les noms existants.
Si vous ne fournissez pas ce champ et que le nom d'utilisateur est une valeur autre qu'une adresse e-mail, le préfixe est issuerurl# par défaut. Lorsque vous définissez userPrefix sur -, le préfixe est désactivé.
Chaîne
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/07/01 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2024/07/01 (UTC)."],[],[],null,["# AWSCluster\n\nThis topic describes the configuration options of the AWSCluster\nCustom Resource Definition.\n\nDefining an AWSCluster\n----------------------\n\n`AWSCluster` is a Kubernetes custom resource defined by\nGKE on AWS. This resource represents a GKE on AWS\n[control plane](/kubernetes-engine/multi-cloud/docs/aws/previous-generation/concepts/architecture#management_service).\n\nTo create a cluster from this template, copy the following YAML and complete the\nhighlighted values defined in the [`spec.networking`](#specnetworking) and\n[`spec.controlPlane`](#speccontrolplane) field definitions. Then, apply\nthe resource manifest to your management service. \n\n apiVersion: multicloud.cluster.gke.io/v1\n kind: AWSCluster\n metadata:\n name: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eCLUSTER_NAME\u003c/span\u003e\u003c/var\u003e\n spec:\n region: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eAWS_REGION\u003c/span\u003e\u003c/var\u003e\n networking:\n vpcID: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eVPC_ID\u003c/span\u003e\u003c/var\u003e\n podAddressCIDRBlocks: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003ePOD_ADDRESS_CIDR_BLOCKS\u003c/span\u003e\u003c/var\u003e\n serviceAddressCIDRBlocks: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eSERVICE_ADDRESS_CIDR_BLOCKS\u003c/span\u003e\u003c/var\u003e\n serviceLoadBalancerSubnetIDs: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eSERVICE_LOAD_BALANCER_SUBNETS\u003c/span\u003e\u003c/var\u003e\n controlPlane:\n version: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eGKE_VERSION\u003c/span\u003e\u003c/var\u003e # Latest version is 1.25.5-gke.2100\n instanceType: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eAWS_INSTANCE_TYPE\u003c/span\u003e\u003c/var\u003e\n keyName: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eSSH_KEY_NAME\u003c/span\u003e\u003c/var\u003e\n subnetIDs:\n - \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eCONTROL_PLANE_SUBNET_IDS\u003c/span\u003e\u003c/var\u003e\n securityGroupIDs:\n - \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eCONTROL_PLANE_SECURITY_GROUPS\u003c/span\u003e\u003c/var\u003e\n iamInstanceProfile: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eCONTROL_PLANE_IAM_ROLE\u003c/span\u003e\u003c/var\u003e\n databaseEncryption:\n kmsKeyARN: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eARN_OF_KMS_KEY\u003c/span\u003e\u003c/var\u003e\n hub:\n membershipName: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eANTHOS_CONNECT_NAME\u003c/span\u003e\u003c/var\u003e\n cloudOperations: # Optional\n projectID: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eYOUR_PROJECT\u003c/span\u003e\u003c/var\u003e\n location: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eGCP_LOCATION\u003c/span\u003e\u003c/var\u003e\n enableLogging: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eENABLE_LOGGING\u003c/span\u003e\u003c/var\u003e\n enableMonitoring: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eENABLE_MONITORING\u003c/span\u003e\u003c/var\u003e\n tags:\n \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-nt\"\u003eTAG_KEY\u003c/span\u003e\u003c/var\u003e: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eTAG_VALUE\u003c/span\u003e\u003c/var\u003e\n proxySecretName: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003ePROXY_SECRET_NAME\u003c/span\u003e\u003c/var\u003e\n workloadIdentity:\n oidcDiscoveryGCSBucket: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eWORKLOAD_IDENTITY_BUCKET\u003c/span\u003e\u003c/var\u003e\n rootVolume: # Optional\n sizeGiB: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eROOT_VOLUME_SIZE\u003c/span\u003e\u003c/var\u003e\n volumeType: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eROOT_VOLUME_TYPE\u003c/span\u003e\u003c/var\u003e\n iops: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eROOT_VOLUME_IOPS\u003c/span\u003e\u003c/var\u003e\n kmsKeyARN: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eROOT_VOLUME_KEY\u003c/span\u003e\u003c/var\u003e\n etcd: # Optional\n mainVolume:\n sizeGiB: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eETCD_VOLUME_SIZE\u003c/span\u003e\u003c/var\u003e\n volumeType: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eETCD_VOLUME_TYPE\u003c/span\u003e\u003c/var\u003e\n iops: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eETCD_VOLUME_IOPS\u003c/span\u003e\u003c/var\u003e\n kmsKeyARN: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eETCD_VOLUME_KEY\u003c/span\u003e\u003c/var\u003e\n authentication:\n awsIAM:\n adminIdentityARNs: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eADMIN_IAM_ARN\u003c/span\u003e\u003c/var\u003e\n oidc: # Optional\n - certificateAuthorityData: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eCERTIFICATE_STRING\u003c/span\u003e\u003c/var\u003e\n clientID: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eCLIENT_ID\u003c/span\u003e\u003c/var\u003e\n clientSecret: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eCLIENT_SECRET\u003c/span\u003e\u003c/var\u003e\n extraParams: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eEXTRA_PARAMS\u003c/span\u003e\u003c/var\u003e\n groupsClaim: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eGROUPS_CLAIM\u003c/span\u003e\u003c/var\u003e\n groupPrefix: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eGROUP_PREFIX\u003c/span\u003e\u003c/var\u003e\n issuerURI: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eISSUER_URL\u003c/span\u003e\u003c/var\u003e\n kubectlRedirectURI: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eKUBECTL_REDIRECT_URL\u003c/span\u003e\u003c/var\u003e\n scopes: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eSCOPES\u003c/span\u003e\u003c/var\u003e\n userClaim: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eUSER_CLAIM\u003c/span\u003e\u003c/var\u003e\n userPrefix: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eUSER_PREFIX\u003c/span\u003e\u003c/var\u003e\n\nThe subfields under `spec` are described in the following sections.\n\n### spec.networking\n\nThis object defines cluster-wide networking configuration.\n\n### spec.controlPlane\n\nThis object includes common parameters for the cluster's control plane.\n\n### spec.controlPlane.rootVolume and spec.etcd.rootVolume\n\nThese fields apply to both `spec.controlPlane.rootVolume` and\n`spec.etcd.mainVolume`.\n\n### spec.authentication.awsIAM\n\nThis object specifies roles granted cluster administrator access with AWS IAM.\n\n### spec.authentication.oidc\n\nYou can specify more than one `oidc` object. The `oidc` object is defined below.\nFor more information, see [Authenticating with OIDC](/kubernetes-engine/multi-cloud/docs/aws/previous-generation/how-to/oidc)."]]