Fichier de configuration de cluster d'utilisateur

Cette page décrit les champs du fichier de configuration du cluster d'utilisateur GKE sur VMware.

Générer un modèle pour votre fichier de configuration

Si vous avez utilisé gkeadm pour créer le poste de travail administrateur, gkeadm a généré un modèle pour le fichier de configuration de votre cluster d'utilisateur, et gkeadm a rempli certains champs automatiquement.

Si vous n'avez pas utilisé gkeadm pour créer le poste de travail administrateur, vous pouvez utiliser gkectl pour générer un modèle pour le fichier de configuration de votre cluster d'utilisateur.

Pour générer un modèle pour le fichier de configuration de votre cluster d'utilisateur, exécutez la commande suivante :

gkectl create-config cluster --config=OUTPUT_FILENAME --gke-on-prem-version=VERSION

Remplacez les éléments suivants :

OUTPUT_FILENAME : chemin d'accès de votre choix pour le modèle généré. Si vous omettez cette option, gkectl nomme le fichier user-cluster.yaml et le place dans le répertoire actuel.

VERSION : numéro de version souhaité. Exemple : gkectl create-config cluster --gke-on-prem-version=1.10.0-gke.8.

Modèle

Remplir votre fichier de configuration

Dans votre fichier de configuration, saisissez les valeurs des champs comme décrit dans les sections suivantes.

name

Obligatoire
Chaîne

Nom de votre choix pour le cluster d'utilisateur. Ce nom doit :

  • contenir au maximum 40 caractères ;
  • ne contenir que des caractères alphanumériques minuscules ou un trait d'union - ;
  • commencer par un caractère alphabétique ;
  • se terminer par un caractère alphanumérique.

Exemple :

name: "my-user-cluster"

gkeOnPremVersion

Obligatoire
Chaîne
mutable

Version de GKE sur VMware pour votre cluster d'utilisateur.

Exemple :

gkeOnPremVersion: "1.14.0-gke.1"

preparedSecrets.namespace

Si vous souhaitez utiliser des identifiants préparés, renseignez ce champ. Sinon, supprimez cette section ou laissez-la en commentaire.

Facultatif
Immutable
Chaîne
Valeurs possibles: chaîne commençant par "gke-onprem-secrets-"

Nom d'un espace de noms Kubernetes dans le cluster d'administrateur où les secrets préparés sont conservés pour ce cluster d'utilisateur.

Exemple :

preparedSecrets:
  namespace: "gke-onprem-secrets-alice"

enableControlplaneV2

Facultatif
Immutable
Booléen
Prérempli: true
Par défaut: true

Si vous souhaitez créer un cluster d'utilisateur sur lequel Controlplane V2 est activé, définissez ce paramètre sur true. Sinon, définissez-le sur false.

Exemple :

enableControlplaneV2: true

vCenter

Cette section contient des informations sur votre environnement vSphere et sur votre connexion au serveur vCenter.

Si vous souhaitez qu'un champ de cette section soit identique à celui que vous avez spécifié pour votre cluster d'administrateur, supprimez le champ ou laissez-le en commentaire.

Si vous souhaitez qu'un champ soit différent de celui que vous avez spécifié pour votre cluster d'administrateur, renseignez-le ici. Tous les champs que vous remplissez ici dans la section vCenter remplacent les champs correspondants dans le fichier de configuration de votre cluster d'administrateur.

vCenter.address

Facultatif
Immutable
Chaîne
Par défaut: Hériter du cluster d'administrateur

Adresse IP ou nom d'hôte de l'instance de serveur vCenter que vous souhaitez utiliser pour ce cluster d'utilisateur.

Pour en savoir plus, consultez la section Rechercher l'adresse de votre serveur vCenter.

Si vous spécifiez une valeur différente de celle de l'instance vCenter Server utilisée par le cluster d'administrateur, Controlplane V2 doit être activé et vous devez fournir des valeurs pour network.vCenter.networkName et tous les champs obligatoires dans la section vCenter.

Exemples :

vCenter:
  address: "203.0.113.101"
vCenter:
  address: "my-vcenter-server-2.my-domain.example"

vCenter.datacenter

Facultatif
Immutable
Chaîne
Par défaut: Hériter du cluster d'administrateur

Chemin relatif d'un centre de données vSphere.

Si vous spécifiez une valeur pour ce champ, vous devez également spécifier:

  • vCenter.networkName
  • vCenter.datastore ou vCenter.storagePolicyName
  • vCenter.cluster ou vCenter.resourcePool

La valeur que vous spécifiez est relative au dossier racine nommé /.

Si votre centre de données se trouve dans le dossier racine, la valeur correspond au nom du centre de données.

Exemple :

vCenter:
  datacenter: "my-uc-data-center"

Sinon, la valeur est un chemin d'accès relatif comprenant un ou plusieurs dossiers, ainsi que le nom du centre de données.

Exemple :

vCenter:
  datacenter: "data-centers/data-center-2"

vCenter.cluster

Facultatif
Immutable
Chaîne
Par défaut: Hériter du cluster d'administrateur

Chemin relatif d'un cluster vSphere qui représente les hôtes ESXi sur lesquels les VM de votre cluster d'utilisateur seront exécutées. Ce cluster vSphere représente un sous-ensemble des hôtes ESXi physiques de votre centre de données vCenter.

La valeur que vous spécifiez est relative à /.../DATA_CENTER/vm/.

Si votre cluster vSphere se trouve dans le dossier /.../DATA_CENTER/vm/, la valeur correspond au nom du cluster vSphere.

Exemple :

vCenter:
  cluster: "my-uc-vsphere-cluster"

Sinon, la valeur est un chemin d'accès relatif comprenant un ou plusieurs dossiers, ainsi que le nom du cluster vSphere.

Exemple :

vCenter:
  cluster: "clusters/vsphere-cluster-2"

vCenter.resourcePool

Facultatif
Immutable
Chaîne
Par défaut: Hériter du cluster d'administrateur

Un pool de ressources vCenter pour les VM de votre cluster d'utilisateur

Si vous souhaitez utiliser le pool de ressources par défaut, définissez la valeur sur VSPHERE_CLUSTER/Resources.

Exemple :

vCenter:
  resourcePool: "my-uc-vsphere-cluster/Resources"

La valeur que vous spécifiez est relative à /.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/.

Si votre pool de ressources est un enfant direct de /.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/, la valeur correspond au nom du pool de ressources.

Exemple :

vCenter:
  resourcePool: "my-uc-resource-pool"

Sinon, la valeur est un chemin d'accès relatif comportant au moins deux pools de ressources.

Exemple :

vCenter:
  resourcePool: "uc-resource-pool-1/uc-resource-pool-2"

vCenter.datastore

Facultatif
Immutable
Chaîne
Par défaut: Hériter du cluster d'administrateur

Nom d'un Datastore vSphere pour votre cluster d'utilisateur.

La valeur que vous spécifiez doit être un nom et non un chemin d'accès. N'incluez aucun dossier dans la valeur.

Exemple :

vCenter:
  datastore: "my-uc-datastore"

Si vous spécifiez une valeur pour ce champ, ne spécifiez pas de valeur pour vCenter.storagePolicyName.

vCenter.storagePolicyName

Facultatif
Chaîne

Nom d'une règle de stockage de VM pour les nœuds de cluster.

Vous pouvez également spécifier une règle de stockage de VM pour les nœuds d'un pool de nœuds spécifique. Toutefois, la règle spécifiée ici s'applique à tout pool de nœuds qui ne possède pas sa propre règle.

Pour en savoir plus, consultez la page Configurer une règle de stockage.

Si vous spécifiez une valeur pour ce champ, ne spécifiez pas de valeur pour vCenter.datastore.

vCenter.caCertPath

Facultatif
Mutable
Chaîne
Par défaut: Hériter du cluster d'administrateur

Chemin d'accès du certificat CA de votre serveur vCenter. Pour en savoir plus, consultez la section Obtenir votre certificat CA vCenter.

Exemple :

vCenter:
  caCertPath: "/usr/local/google/home/me/certs/vcenter-ca-cert-2.pem"

Pour en savoir plus sur la mise à jour de ce champ, consultez la section Mettre à jour les références de certificats vCenter.

vCenter.credentials.fileRef.path

Facultatif
Mutable
Chaîne
Par défaut: Hériter du cluster d'administrateur

Si vous spécifiez une valeur pour preparedSecrets.namespace, n'indiquez aucune valeur pour ce champ. Indiquez plutôt une valeur pour vCenter.credentials.secretRef.version.

Chemin d'accès d'un fichier de configuration des identifiants contenant le nom d'utilisateur et le mot de passe de votre compte utilisateur vCenter. Le compte utilisateur doit disposer du rôle d'administrateur ou de privilèges équivalents. Consultez les exigences concernant vSphere.

Vous pouvez utiliser gkectl update credentials pour mettre à jour ce champ dans un cluster existant. Pour en savoir plus, consultez la page Effectuer une rotation des clés de compte de service.

Pour en savoir plus sur la mise à jour de vos identifiants vCenter, consultez la page Mettre à jour les identifiants du cluster.

Exemple :

vCenter:
  credentials:
    fileRef:
      path: "my-config-directory/my-credentials-2.yaml"

vCenter.credentials.fileRef.entry

Facultatif
Mutable
Chaîne
Par défaut: Hériter du cluster d'administrateur

Nom du bloc d'identifiants, dans votre fichier de configuration des identifiants, qui contient le nom d'utilisateur et le mot de passe de votre compte utilisateur vCenter.

Exemple :

vCenter:
  credentials:
    fileRef:
      entry: "vcenter-credentials-2"

vCenter.credentials.secretRef.version

Obligatoire si vous avez fourni une valeur pour preparedSecrets.namespace
Chaîne
Valeurs possibles: une chaîne entière ou "latest"
Valeur par défaut: "latest"

Si vous fournissez une valeur pour preparedSecrets.namespace, renseignez ce champ. Sinon, supprimez ce champ ou laissez-le en commentaire.

Version d'un secret préparé dans le cluster d'administrateur, qui contient le nom d'utilisateur et le mot de passe de l'instance vCenter Server que vous souhaitez utiliser pour ce cluster d'utilisateur.

Exemple :

vCenter:
  credentials:
    secretRef:
      version: "1"

vCenter.folder

Facultatif
Immutable
Chaîne
Par défaut: Hériter du cluster d'administrateur

Chemin relatif d'un dossier vSphere que vous avez déjà créé. Ce dossier contiendra les VM de votre cluster d'utilisateur.

Si vous ne spécifiez pas de valeur, les VM de votre cluster d'utilisateur sont placées dans /.../DATA_CENTER/vm/.

Si vous spécifiez une valeur, elle est relative à /.../DATA_CENTER/vm/.

La valeur peut être le nom d'un dossier.

Exemple :

vCenter:
  folder: "my-uc-folder"

Il peut également s'agir d'un chemin d'accès relatif comprenant plusieurs dossiers.

Exemple :

vCenter:
  folder: "folders/folder-2"

componentAccessServiceAccountKeyPath

Facultatif
Mutable
Chaîne
Par défaut: Hériter du cluster d'administrateur

Chemin d'accès au fichier de clé JSON de votre compte de service d'accès au composant.

Exemple :

componentAccessServiceAccountKeyPath: "my-key-folder/uc-access-key.json"

componentAccessServiceAccountKey.secretRef.version

Facultatif
Mutable
Chaîne
Valeurs possibles: chaîne entière ou "latest"
Valeur par défaut: "latest"

Version d'un secret préparé dans le cluster d'administrateur qui contient une clé JSON pour votre compte de service d'accès au composant.

Exemple :

componentAccessServiceAccountKey:
  secretRef:
    version: "1"

privateRegistry

Ne remplissez cette section que si votre cluster d'administrateur utilise un registre privé et que vous souhaitez que votre cluster d'utilisateur utilise un autre registre privé. Sinon, supprimez cette section ou laissez-la en commentaire.

Si vous souhaitez utiliser des paramètres différents de ceux du cluster d'administrateur:

  • Nom d'utilisateur, mot de passe et certificat différents

  • (Uniquement disponible pour le plan de contrôle V2) Adresse de registre privé différente

Remplissez les champs privateRegistry ici. Les nouveaux paramètres sont pris en compte lors de la création et de la mise à jour du cluster.

privateRegistry.address

Obligatoire pour le registre privé
Immutable
Chaîne
Par défaut: Hériter du cluster d'administrateur

Adresse IP ou nom de domaine complet de la machine qui exécute votre registre Docker privé.

Exemples :

privateRegistry:
  address: "203.0.113.10"
privateRegistry:
  address: "fqdn.example.com"

privateRegistry.credentials.fileRef.path

Obligatoire pour le registre privé
Mutable
Chaîne
Par défaut: Hériter du cluster d'administrateur

Si vous prévoyez d'utiliser un secret préparé pour le registre privé, n'indiquez aucune valeur dans ce champ. Indiquez plutôt une valeur pour privateRegistry.credentials.secretRef.version.

Chemin d'accès d'un fichier de configuration des identifiants contenant le nom d'utilisateur et le mot de passe d'un compte que GKE sur VMware peut utiliser pour accéder à votre registre Docker privé.

Exemple :

privateRegistry:
  credentials:
    fileRef:
      path: "my-config-folder/admin-creds.yaml"

privateRegistry.credentials.fileRef.entry

Obligatoire pour le registre privé
Mutable
Chaîne
Par défaut: Hériter du cluster d'administrateur

Nom du bloc d'identifiants, dans votre fichier de configuration des identifiants, qui contient le nom d'utilisateur et le mot de passe de votre compte de registre Docker privé.

privateRegistry:
  credentials:
    fileRef:
      entry: "private-registry-creds"

privateRegistry.credentials.secretRef.version

Obligatoire si vous souhaitez utiliser un secret préparé pour le registre privé
Chaîne
Valeurs possibles: chaîne entière ou "latest"
Valeur par défaut: "latest"

Si vous fournissez une valeur pour preparedSecrets.namespace et que vous souhaitez utiliser un secret préparé pour le registre privé, remplissez ce champ. Sinon, supprimez ce champ ou laissez-le en commentaire.

Version d'un secret préparé dans le cluster d'administrateur, qui contient le nom d'utilisateur et le mot de passe de l'instance vCenter Server que vous souhaitez utiliser pour ce cluster d'utilisateur.

Exemple :

privateRegistry:
  credentials:
    secretRef:
      version: "1"

privateRegistry.caCertPath

Obligatoire pour le registre privé
Mutable
Chaîne
Par défaut: Hériter du cluster d'administrateur

Lorsque Docker extrait une image de votre registre privé, le registre doit prouver son identité en présentant un certificat. Le certificat du registre est signé par une autorité de certification (CA). Docker utilise le certificat de l'autorité de certification pour valider le certificat du registre.

Définissez ce champ sur le chemin d'accès au certificat de l'autorité de certification.

Exemple :

privateRegistry:
  caCertPath: "my-cert-folder/registry-ca.crt"

network

Cette section contient des informations sur le réseau de votre cluster d'utilisateur.

network.hostConfig

Cette section contient des informations sur les serveurs NTP, les serveurs DNS et les domaines de recherche DNS utilisés par les VM qui sont vos nœuds de cluster. Si vous utilisez l'équilibreur de charge Seesaw, ces informations s'appliquent également à vos VM Seesaw.

Cette section est obligatoire si une ou plusieurs des conditions suivantes sont remplies:

  • network.ipMode.type est définie sur static.
  • enableControlplaneV2 est défini sur true ou autorisé à utiliser par défaut true.
  • loadBalancer.kind est définie sur "Seesaw".

network.hostConfig.dnsServers

Obligatoire
Immutable
Tableau de chaînes.
Le tableau ne doit pas comporter plus de trois éléments.

Adresses des serveurs DNS pour les VM.

Exemple :

network:
  hostConfig:
    dnsServers:
    - "172.16.255.1"
    - "172.16.255.2"

network.hostConfig.ntpServers

Obligatoire
Immutable
Tableau de chaînes

Adresses des serveurs de temps que les VM utilisent.

Exemple :

network:
  hostConfig:
    ntpServers:
    - "216.239.35.0"

network.hostConfig.searchDomainsForDNS

Facultatif
Immutable
Tableau de chaînes

Domaines de recherche DNS que les hôtes utilisent. Ces domaines sont utilisés dans le cadre d'une liste de recherche de domaines.

Exemple :

network:
  hostConfig:
    searchDomainsForDNS:
    - "my.local.com"

network.ipMode.type

Obligatoire
Immutable
Chaîne
Prérempli: "dhcp"
Par défaut: "dhcp"

Si vous souhaitez que les nœuds de votre cluster obtiennent leur adresse IP à partir d'un serveur DHCP, définissez la valeur sur "dhcp". Si vous souhaitez que les nœuds de votre cluster aient des adresses IP statiques venant d'une liste que vous fournissez, définissez ce paramètre sur "static".

Exemple :

network:
  ipMode:
    type: "static"

network.ipMode.ipBlockFilePath

Obligatoire si network.ipMode.type = static
Chaîne immuable

Chemin d'accès au fichier de blocs d'adresses IP de votre cluster.

Exemple :

network:
  ipMode:
    ipBlockFilePath: "/my-config-folder/user-cluster-ipblock.yaml"

network.serviceCIDR

Obligatoire
Chaîne
Immutable
Prérempli: "10.96.0.0/20"

Une plage d'adresses IP au format CIDR à utiliser pour les services de votre cluster. Elle doit être au moins égale à /24.

Exemple :

network:
  serviceCIDR: "10.96.0.0/20"

network.podCIDR

Obligatoire
Immutable
Chaîne
Prérempli: "192.168.0.0/16"
Par défaut: "192.168.0.0/16"

Une plage d'adresses IP au format CIDR à utiliser pour les pods de votre cluster Elle doit être au moins égale à /18.

Exemple :

network:
  podCIDR: "192.168.0.0/16"

La plage de services ne doit pas chevaucher la plage de pods.

Les plages de services et de pods ne doivent chevaucher aucune adresse en dehors du cluster que vous souhaitez atteindre depuis l'intérieur du cluster.

Par exemple, supposons que votre plage de services soit 10.96.232.0/24 et que votre plage de pods soit 192.168.0.0/16. Tout trafic envoyé depuis un pod vers une adresse dans l'une de ces plages est traité comme étant dans un cluster et n'atteint aucune destination en dehors du cluster.

En particulier, les plages de services et de pods ne doivent pas chevaucher les éléments suivants :

  • Adresses IP des nœuds d'un cluster

  • Adresses IP utilisées par les machines des équilibreurs de charge

  • Adresses IP virtuelles utilisées par les nœuds de plan de contrôle et les équilibreurs de charge

  • Adresse IP des serveurs vCenter, DNS et NTP

Nous vous recommandons de placer vos plages de services et de pods dans l'espace d'adressage RFC 1918.

Voici l'une des raisons pour lesquelles il est recommandé d'utiliser les adresses RFC 1918 Supposons que votre plage de services et de pods contienne des adresses IP externes. Tout trafic envoyé depuis un pod vers l'une de ces adresses externes sera traité comme du trafic interne au cluster et n'atteindra pas la destination externe.

network.vCenter.networkName

Obligatoire si vCenter.address est différent de l'adresse vCenter que vous utilisez pour le cluster d'administrateur.
Chaîne
immuable

Nom du réseau vSphere pour les nœuds de votre cluster d'utilisateur.

Exemple :

network:
  vCenter:
    networkName: "my-network"

Si le nom contient un caractère spécial, vous devez utiliser une séquence d'échappement pour celui-ci.

Caractères spéciaux Séquence d'échappement
Barre oblique (/) %2f
Barre oblique inverse (\) %5c
Signe de pourcentage (%) %25

Si le nom du réseau n'est pas unique dans votre centre de données, vous pouvez spécifier un chemin d'accès complet.

Exemple :

network:
  vCenter:
    networkName: "/my-uc-datacenter/network/my-network"

network.additionalNodeInterfaces

Si vous définissez multipleNetworkInterfaces sur true, remplissez cette section. Sinon, supprimez cette section ou laissez-la en commentaire.

Immuable

Tableau d'objets, chacun décrivant une interface réseau pouvant être utilisée sur tout ou partie des nœuds de votre cluster.

network.additionalNodeInterfaces[i].networkName

Obligatoire si multipleNetworkInterfaces = true
Chaîne immuable

Nom du réseau vSphere auquel cette interface de nœud supplémentaire se connectera.

Exemple :

network:
  additionalNodeInterfaces:
  - networkName: "my-node-interface-1"

network.additionalNodeInterfaces[i].type

Obligatoire si multipleNetworkInterfaces = true
Chaîne immuable

Exemple :

network:
  additionalNodeInterfaces:
  - name: "my-node-interface-1"
    type: "static"

network.additionalNodeInterfaces[i].ipBlockFilePath

Obligatoire si network.additionalNodeInterfaces[i].type = static
Chaîne immuable

Chemin d'accès d'un fichier de bloc d'adresses IP contenant les adresses IP à utiliser pour cette interface réseau sur les nœuds possédant cette interface réseau.

Exemple :

network:
  additionalNodeInterfaces:
  - name: "my-node-interface-1"
    type: "static"
    ipBlockFilePath: "my-ipblock-file-1"

network.controlPlaneIPBlock

Si vous définissez enableControlplaneV2 sur true, remplissez cette section. Sinon, supprimez cette section ou laissez-la en commentaire.

network.controlPlaneIPBlock.netmask

Obligatoire si enableControlplaneV2 = true
Chaîne immuable

Exemple :

network:
  controlPlaneIPBlock:
    netmask: "255.255.255.0"

network.controlPlaneIPBlock.gateway

Obligatoire si enableControlplaneV2 = true
Chaîne immuable

Exemple :

network:
  controlPlaneIPBlock:
    gateway: "172.16.21.1"

network.controlPlaneIPBlock.ips

Obligatoire si enableControlplaneV2 = true
Immutable
Tableau d'objets, chacun possédant une adresse IP et un nom d'hôte facultatif.

Pour un cluster d'utilisateur haute disponibilité, le tableau comporte trois éléments. Pour un cluster d'utilisateur standard, le tableau contient un élément.

Exemple :

network:
  controlPlaneIPBlock:
    ips:
    - ip: "172.16.21.6"
      hostname: "cp-vm-1"
    - ip: "172.16.21.7"
      hostname: "cp-vm-2"
    - ip: "172.16.21.8"
      hostname: "cp-vm-3"

loadBalancer

Cette section contient des informations sur l'équilibreur de charge de votre cluster d'utilisateur.

loadBalancer.vips.controlPlaneVIP

Obligatoire
Chaîne
immuable

Adresse IP que vous avez choisi de configurer sur l'équilibreur de charge pour le serveur d'API Kubernetes du cluster d'utilisateur.

Exemple :

loadBalancer:
  vips:
    controlplaneVIP: "203.0.113.3"

loadBalancer.vips.ingressVIP

Obligatoire
Chaîne
immuable

Adresse IP que vous avez choisie de configurer sur l'équilibreur de charge pour le proxy d'entrée.

Exemple :

loadBalancer:
  vips:
    ingressVIP: "203.0.113.4"

loadBalancer.kind

Obligatoire
Chaîne
Immutable
Prérempli: "MetalLB"

Définissez ce paramètre sur "ManualLB", "F5BigIP", "Seesaw" ou "MetalLB".

Exemple :

loadBalancer:
  kind: "MetalLB"

loadBalancer.manualLB

Si vous définissez loadbalancer.kind sur "manualLB", remplissez cette section. Sinon, supprimez cette section ou laissez-la en commentaire.

loadBalancer.manualLB.ingressHTTPNodePort

Obligatoire si loadBalancer.kind = ManualLB
Immutable
Entier
Prérempli: 30243

Le proxy d'entrée d'un cluster d'utilisateur est exposé par un service Kubernetes de type LoadBalancer. Le service dispose d'un ServicePort pour HTTP. Vous devez choisir une valeur nodePort pour le ServicePort HTTP.

Définissez ce champ sur la valeur nodePort.

Exemple :

loadBalancer:
  manualLB:
    ingressHTTPNodePort: 32527

loadBalancer.manualLB.ingressHTTPSNodePort

Obligatoire si loadBalancer.kind = ManualLB
Immutable
Entier
Prérempli: 30879

Le proxy d'entrée d'un cluster d'utilisateur est exposé par un service de type LoadBalancer. Le service dispose d'un ServicePort pour HTTPS. Vous devez choisir une valeur nodePort pour le ServicePort HTTPS.

Définissez ce champ sur la valeur nodePort. Exemple :

loadBalancer:
  manualLB:
    ingressHTTPSNodePort: 30139

loadBalancer.manualLB.controlPlaneNodePort

Obligatoire si loadBalancer.kind = ManualLB et enableControlplaneV2 = false
Immutable
Entier
Prérempli: 30562

Le serveur d'API Kubernetes d'un cluster d'utilisateur s'exécute dans le cluster d'administrateur et est exposé par un service de type LoadBalancer. Vous devez choisir une valeur nodePort pour le service.

Définissez ce champ sur la valeur nodePort.

Exemple :

loadBalancer:
  manualLB:
    controlPlaneNodePort: 30968

loadBalancer.manualLB.konnectivityServerNodePort

Obligatoire si loadBalancer.kind = ManualLB et enableControlplaneV2 = false
Immutable
Entier
Prérempli: 30563

Le serveur d'API Kubernetes d'un cluster d'utilisateur qui utilise kubeception s'exécute dans le cluster d'administrateur et est exposé par un service de type LoadBalancer. Le serveur Konnectivity réutilise ce service avec une valeur nodePort différente. Vous devez choisir une valeur nodePort pour le serveur Konnectivity.

Définissez ce champ sur la valeur nodePort pour le serveur Ktonctivity.

Exemple :

loadBalancer:
  manualLB:
    konnectivityServerNodePort: 30969

loadBalancer.f5BigIP

Si vous définissez loadbalancer.kind sur "f5BigIP", remplissez cette section. Sinon, supprimez cette section ou laissez-la en commentaire.

loadBalancer.f5BigIP.address

Obligatoire si loadBalancer.kind = "f5BigIP"
Chaîne

Adresse de votre équilibreur de charge F5 BIG-IP.

Exemple :

loadBalancer:
  f5BigIP:
      address: "203.0.113.2"

loadBalancer.f5BigIP.credentials.fileRef.path

Obligatoire si loadBalancer.kind = "f5BigIP"
Chaîne

Chemin d'accès d'un fichier d'identifiants contenant le nom d'utilisateur et le mot de passe d'un compte que GKE sur VMware peut utiliser pour se connecter à votre équilibreur de charge F5 BIG-IP.

Le compte utilisateur doit disposer d'un rôle utilisateur possédant des autorisations suffisantes pour configurer et gérer l'équilibreur de charge. Le rôle Administrateur ou Administrateur de ressources est suffisant.

Pour en savoir plus sur la mise à jour de vos identifiants F5 BIG-IP, consultez la page Mettre à jour les identifiants du cluster.

Exemple :

loadBalancer:
  f5BigIP:
    credentials:
      fileRef:
        path: ""my-config-folder/user-creds.yaml"

loadBalancer.f5BigIP.credentials.fileRef.entry

Obligatoire si loadBalancer.kind = "f5BigIP"
Chaîne

Nom du bloc d'identifiants, dans votre fichier de configuration des identifiants, qui contient le nom d'utilisateur et le mot de passe de votre compte F5 BIG-IP.

Exemple :

loadBalancer:
  f5BigIP:
    credentials:
      fileRef:
        entry: "f5-creds"

loadBalancer.f5BigIP.partition

Obligatoire si loadBalancer.kind = "f5BigIP"
Chaîne

Nom d'une partition BIG-IP que vous avez créée pour votre cluster d'utilisateur.

Exemple :

loadBalancer:
  f5BigIP:
    partition: "my-f5-user-partition"

loadBalancer.f5BigIP.snatPoolName

Obligatoire si loadBalancer.kind = "f5BigIP" et que vous utilisez SNAT
Chaîne

Nom de votre pool SNAT.

Exemple :

loadBalancer:
  f5BigIP:
    snatPoolName: "my-snat-pool"

loadBalancer.seesaw

Si vous définissez loadbalancer.kind sur "Seesaw", remplissez cette section. Sinon, supprimez cette section ou laissez-la en commentaire.

Prenez note des restrictions suivantes :

Pour en savoir plus sur la configuration de l'équilibreur de charge Seesaw, consultez le guide de démarrage rapide de l'équilibreur de charge Seesaw et la section Équilibrage de charge groupé avec Seesaw.

loadBalancer.seesaw.ipBlockFilePath

Obligatoire si loadBalancer.kind = Seesaw
Chaîne immuable

Chemin du fichier de bloc d'adresses IP pour vos VM Seesaw.

Exemple :

loadBalancer:
  seesaw:
    ipBlockFilePath: "config-folder/user-seesaw-ipblock.yaml"

loadBalancer.seesaw.vrid

Obligatoire si loadBalancer.kind = Seesaw
Immutable
Entier
Valeurs possibles: 1 à 255
Prérempli: 0

Identifiant de routeur virtuel de votre VM Seesaw. Cet identifiant, qui est un entier de votre choix, doit être unique dans un VLAN.

Exemple :

loadBalancer:
  seesaw:
    vrid: 125

loadBalancer.seesaw.masterIP

Obligatoire si loadBalancer.kind = Seesaw
Chaîne immuable

Adresse IP virtuelle configurée sur votre VM Seesaw principale.

Exemple :

loadBalancer:
  seesaw:
    masterIP: 172.16.20.21

loadBalancer.seesaw.cpus

Obligatoire si loadBalancer.kind = Seesaw
Mutable
Entier
Prérempli: 4

Nombre de processeurs pour chacune de vos VM Seesaw.

Exemple :

loadBalancer:
  seesaw:
    cpus: 8

loadBalancer.seesaw.memoryMB

Obligatoire si loadBalancer.kind = Seesaw
Mutable
Entier
Prérempli: 3072

Nombre de mébioctets de mémoire pour chacune de vos VM Seesaw.

Exemple :

loadBalancer:
  seesaw:
    memoryMB: 8192

Remarque : Ce champ spécifie le nombre de mébioctets de mémoire, et non le nombre de mégaoctets. Un mébioctet est égal à 2^20, soit 1 048 576 octets. Un mégaoctet est égal à 10^6, soit 1 000 000 octets.

loadBalancer.seesaw.vCenter.networkName

Facultatif
Immutable
Chaîne
Par défaut: Identique aux nœuds du cluster

Nom du réseau vCenter contenant vos VM Seesaw.

Exemple :

loadBalancer:
  seesaw:
    vCenter:
      networkName: "my-seesaw-network"

loadBalancer.seesaw.enableHA

Facultatif
Immutable
Pertinent si loadBalancer.kind = Seesaw
Booléen
Prérempli: false
Par défaut: false

Si vous souhaitez créer un équilibreur de charge Seesaw à haute disponibilité, définissez cette valeur sur true. Sinon, définissez cette valeur sur false. Un équilibreur de charge Seesaw à haute disponibilité utilise une paire (maître, sauvegarde) de VM.

Exemple :

loadBalancer:
  seesaw:
    enableHA: true

loadBalancer.seesaw.disableVRRPMAC

Facultatif
Immutable
Pertinent si loadBalancer.kind = Seesaw
Booléen
Prérempli: true
Valeur par défaut: true

Si vous définissez cette valeur sur true, l'équilibreur de charge Seesaw n'utilise pas l'apprentissage MAC pour le basculement. Il utilise le protocole ARP gratuit. Si vous définissez cette valeur sur false, l'équilibreur de charge Seesaw utilise l'apprentissage MAC. Nous vous recommandons de définir cette valeur sur true. Si vous utilisez vSphere 7.0 ou une version ultérieure, et que vous disposez d'un équilibreur de charge Seesaw à haute disponibilité, vous devez définir cette valeur sur true.

Exemple :

loadBalancer:
  seesaw:
    disableVRRPMAC: true

loadBalancer.metalLB

Si vous définissez loadbalancer.kind sur "MetalLB", remplissez cette section. Sinon, supprimez cette section ou laissez-la en commentaire.

Pour en savoir plus, consultez la page Équilibrage de charge groupé avec MetalLB.

loadBalancer.metalLB.addressPools

Obligatoire si loadBalancer.kind = "MetalLB"
mutable

Tableau d'objets, chacun contenant des informations sur un pool d'adresses qui sera utilisé par l'équilibreur de charge MetalLB.

loadBalancer.metalLB.addressPools[i].name

Obligatoire si loadBalancer.kind = MetalLB
Chaîne modifiable

Nom de votre choix pour un pool d'adresses.

Exemple :

loadBalancer:
  metalLB:
    addressPools:
    - name: "my-address-pool-1"
loadBalancer.metalLB.addressPools[i].addresses

Obligatoire si loadBalancer.kind = MetalLB
Mutable

Tableau de chaînes, chacune correspondant à une plage d'adresses. Chaque plage doit être au format CIDR ou au format de trait d'union.

Exemple :

loadBalancer:
  metalLB:
    addressPools:
    - name: "my-address-pool-1"
      addresses:
      - "192.0.2.0/26"
      - "192.0.2.64-192.0.2.72"
loadBalancer.metalLB.addressPools[i].avoidBuggyIPs

Facultatif
Pertinent si loadBalancer.kind = MetalLB
Mutable
Booléen
Prérempli: false
Par défaut: false

Si vous définissez cette valeur sur true, le contrôleur MetalLB n'attribue pas les adresses IP se terminant par .0 ou .255 aux services. Cela évite le problème des bugs avec les appareils grand public qui suppriment par erreur le trafic envoyé à ces adresses IP spéciales.

Exemple :

loadBalancer:
  metalLB:
    addressPools:
    - name: "my-address-pool-1"
      - "192.0.2.0/26"
      - "192.0.2.64-192.0.2.72"
      avoidBuggyIPs: true
loadBalancer.metalLB.addressPools[i].manualAssign

Facultatif
Pertinent si loadBalancer.kind = MetalLB
Mutable
Booléen
Prérempli: false
Par défaut: false

Si vous ne souhaitez pas que le contrôleur MetalLB attribue automatiquement les adresses IP de ce pool aux services, définissez ce paramètre sur true. Un développeur peut ensuite créer un service de type LoadBalancer et spécifier manuellement l'une des adresses du pool.

Sinon, définissez cette valeur sur false.

Exemple :

loadBalancer:
  metalLB:
    addressPools:
    - name: "my-address-pool-1"
      manualAssign: true

enableDataplaneV2

Facultatif
Immutable
Booléen
Prérempli: vrai
Par défaut: false

Si vous souhaitez activer Dataplane V2 ou utiliser Controlplane V2, définissez la valeur sur true. Sinon, définissez cette valeur sur false.

Exemple :

enableDataplaneV2: true

Pour en savoir plus sur la procédure de dépannage, consultez la page Dépannage de Dataplane V2.

dataplaneV2.forwardMode

Facultatif
Immutable
Chaîne
Valeurs possibles: "snat", "dsr"
Prérempli: "snat"
Par défaut: "snat"

Mode de transfert pour un cluster sur lequel Dataplane V2 est activé.

En mode SNAT (traduction d'adresse réseau source), un paquet est traduit SNAT lorsqu'il est transféré d'un nœud d'équilibreur de charge vers un pod de backend. Le pod ne peut pas voir l'adresse IP source d'origine, et le paquet renvoyé doit passer par le nœud de l'équilibreur de charge.

En mode retour direct du serveur (DSR), un paquet conserve son adresse IP source d'origine lorsqu'il est transféré d'un nœud d'équilibreur de charge vers un pod de backend. Le pod peut voir l'adresse IP source d'origine et le paquet renvoyé est directement transmis au client, sans passer par le nœud de l'équilibreur de charge.

Exemple :

dataplaneV2:
  forwardMode: "dsr"

multipleNetworkInterfaces

Facultatif
Immutable
Booléen
Prérempli: false
Par défaut: false

Si vous souhaitez activer plusieurs interfaces réseau pour les pods, définissez ce paramètre sur true. Sinon, définissez cette valeur sur false.

Pour plus d'informations, consultez la page Configurer plusieurs interfaces réseau pour les pods.

Exemple :

multipleNetworkInterfaces: true

advancedNetworking

Facultatif
Immutable
booléen
Prérempli: false
Par défaut: false

Si vous envisagez de créer une passerelle NAT de sortie, définissez cette valeur sur true. Sinon, définissez cette valeur sur false.

Si vous définissez ce champ sur true, vous devez également définir enableDataplaneV2 sur true.

Exemple :

advancedNetworking: true

disableBundledIngress

Définissez cette valeur sur true si vous souhaitez désactiver l'entrée groupée pour le cluster. Sinon, définissez-le sur false.

Facultatif
Booléen
Mutable
Prérempli: false
Par défaut: false

Exemple :

disableBundledIngress: true

storage.vSphereCSIDisabled

Si vous souhaitez désactiver le déploiement des composants CSI vSphere, définissez cette valeur sur true. Sinon, définissez cette valeur sur false.

Facultatif
Mutable
Booléen
Prérempli: false
Par défaut: false

Exemple :

storage:
  vSphereCSIDisabled: false

masterNode

Cette section contient des informations sur les nœuds du cluster d'administrateur qui servent de nœuds de plan de contrôle pour ce cluster d'utilisateur.

masterNode.cpus

Facultatif
Mutable
Entier
Prérempli: 4
Par défaut: 4

Nombre de processeurs de chaque nœud de cluster d'administrateur servant de plan de contrôle pour ce cluster d'utilisateur.

Exemple :

masterNode:
  cpus: 8

masterNode.memoryMB

Facultatif
Mutable
Entier
Prérempli: 8192
Par défaut: 8192

Nombre de mébioctets de mémoire pour chaque nœud de cluster d'administrateur servant de plan de contrôle pour ce cluster d'utilisateur. Cette valeur doit être un multiple de 4.

Exemple :

masterNode:
  memoryMB: 8192

Remarque : Ce champ spécifie le nombre de mébioctets de mémoire, et non le nombre de mégaoctets. Un mébioctet est égal à 2^20, soit 1 048 576 octets. Un mégaoctet est égal à 10^6, soit 1 000 000 octets.

masterNode.replicas

Facultatif
Immutable
Entier
Valeurs possibles: 1 ou 3
Prérempli: 1
Par défaut: 1

Nombre de nœuds de plan de contrôle pour ce cluster d'utilisateur Ce nombre ne peut pas être modifié une fois le cluster créé. Si vous souhaitez mettre à jour le nombre d'instances dupliquées ultérieurement, vous devez recréer le cluster d'utilisateur.

Les nœuds du plan de contrôle pour le cluster d'utilisateur se trouvent dans le cluster d'administrateur.

Exemple :

masterNode:
  replicas: 3

masterNode.autoResize.enabled

Facultatif
Mutable
Booléen
Prérempli: false
Par défaut: false

Définissez cette valeur sur true pour activer le redimensionnement automatique des nœuds du plan de contrôle du cluster d'utilisateur. Sinon, définissez cette valeur sur false.

Les nœuds du plan de contrôle pour le cluster d'utilisateur se trouvent dans le cluster d'administrateur.

Pour en savoir plus, consultez la section Activer le redimensionnement des nœuds pour les nœuds de plan de contrôle d'un cluster d'utilisateur.

Exemple :

masterNode:
  autoResize:
    enabled: true

masterNode.vsphere.datastore

Facultatif
Chaîne
immuable
Par défaut: valeur de vCenter.datastore

Datastore dans lequel les nœuds de plan de contrôle de ce cluster d'utilisateur seront créés.

Exemple :

masterNode:
  vSphere:
    datastore: "control-plane-datastore"

Si vous spécifiez une valeur pour ce champ, ne spécifiez pas de valeur pour masterNode.vsphere.storagePolicyName.

masterNode.vsphere.storagePolicyName

Facultatif
Chaîne
immuable
Par défaut: valeur de vCenter.storagePolicyName

Nom d'une règle de stockage de VM pour les nœuds du plan de contrôle.

Pour en savoir plus, consultez la page Configurer une règle de stockage.

Exemple :

masterNode:
  vSphere:
    storagePolicyName: "control-plane-storage-policy"

Si vous spécifiez une valeur pour ce champ, ne spécifiez pas de valeur pour masterNode.vsphere.datastore.

nodePools

Obligatoire
Mutable
Tableau d'objets, chacun décrivant un pool de nœuds.

Pour en savoir plus, consultez la page Créer et gérer des pools de nœuds.

nodePools[i].name

Obligatoire
Chaîne
immuable

Nom de votre choix pour le pool de nœuds. Ce nom doit :

  • contenir au maximum 40 caractères ;
  • ne contenir que des caractères alphanumériques minuscules ou un trait d'union - ;
  • commencer par un caractère alphabétique ;
  • se terminer par un caractère alphanumérique.

Exemple :

nodePools:
- name: "my-node-pool-1"

nodePools[i].gkeOnPremVersion

Lorsque vous mettez à niveau un cluster d'utilisateur, vous pouvez spécifier que les pools de nœuds sélectionnés restent à la version précédente.

Si vous souhaitez conserver la version précédente de ce pool de nœuds, définissez-la sur la version précédente. Sinon, supprimez ce champ ou définissez-le sur la chaîne vide. Pour en savoir plus, consultez la page Mettre à niveau des pools de nœuds.

Facultatif
Mutable
Chaîne
Par défaut: Cluster gkeOnPremVersion

Exemple :

nodePools:
- name: "my-node-pool"
  gkeOnPremVersion: "1.13.0-gke.16"

nodePools[i].cpus

Obligatoire
Mutable
Entier
Prérempli: 4

Nombre de processeurs virtuels de chaque nœud du pool.

Exemple :

nodePools"
- name: "my-node-pool"
  cpus: 8

nodePools[i].memoryMB

Obligatoire
Mutable
Entier
Prérempli: 8192

Mébioctets de mémoire pour chaque nœud du pool. Cette valeur doit être un multiple de 4.

Exemple :

nodePools"
- name: "my-node-pool"
  memoryMB: 8192

Remarque : Ce champ spécifie le nombre de mébioctets de mémoire, et non le nombre de mégaoctets. Un mébioctet est égal à 2^20, soit 1 048 576 octets. Un mégaoctet est égal à 10^6, soit 1 000 000 octets.

nodePools[i].replicas

Obligatoire
Mutable
Entier
Prérempli: 3
Valeurs possibles: le nombre total de nœuds non rejetés dans tous les pools de nœuds du cluster doit être au moins égal à 3.

Nombre de nœuds du pool.

Exemple :

nodePools:
- name: "my-node-pool"
  replicas: 5

nodePools[i].bootDiskSizeGB

Facultatif
Mutable
Entier
Prérempli: 40
Par défaut: 40

Taille du disque de démarrage en gigaoctets pour chaque nœud du pool.

Exemple :

nodePools
- name: "my-node-pool"
  bootDiskSizeGB: 40

nodePools[i].osImageType

Facultatif
Mutable
Chaîne
Valeurs possibles: "Ubuntu_containerd", "cos", "Ubuntu_cgv2", "cos_cgv2", "windows"
Prérempli: "Ubuntu_containerd"
Par défaut: "Ubuntu_containerd"

Type d'image d'OS à exécuter sur les VM du pool de nœuds.

Si vous spécifiez ubuntu_cgv2 ou cos_cgv2, vous devez exécuter gkectl prepare --extra-os-image-types=cgroupv2 avant de créer/mettre à jour le cluster.

Exemple :

nodePools
- name: "my-node-pool"
  osImageType: "ubuntu_cgv2"

nodePools[i].osImage

Obligatoire si nodePools[i].osImageType = windows
Chaîne modifiable
Chaîne

Nom d'un modèle de VM Windows. Le modèle doit être basé sur un fichier ISO de Windows Server 2019 comportant le tag de langue/région en-US.

Pour en savoir plus, consultez le guide de l'utilisateur pour les pools de nœuds du système d'exploitation Windows Server.

nodePools[i].labels

Mappage
modifiable
(facultatif)

Libellés à appliquer à chaque objet de nœud Kubernetes du pool.

Exemple :

nodePools:
- name: "my-node-pool"
  labels:
    environment: "production"
    tier: "cache"

Pour des raisons de sécurité, le kubelet ne peut pas appliquer d'étiquettes à lui-même dans certains espaces de noms.

Les espaces de noms d'étiquettes de nœuds réservés sont les suivants : kubernetes.io, k8s.io et googleapis.com.

nodePools[i].taints

Facultatif
Mutable
Tableau d'objets, chacun décrivant un rejet Kubernetes appliqué à chaque nœud du pool. Les rejets sont des paires clé/valeur associées à un effect. Les rejets sont utilisés avec des tolérances pour la planification des pods. Spécifiez l'une des options suivantes pour effect: NoSchedule, PreferNoSchedule, NoExecute.

Exemple :

nodePools:
- name: "my-node-pool"
  taints:
  - key: "staging"
    value: "true"
    effect: "NoSchedule"

nodePools[i].vsphere.datastore

Facultatif
Chaîne
mutable
Par défaut: Valeur de vCenter.datastore

Nom du datastore vCenter dans lequel les nœuds seront créés.

Exemple :

nodePools:
- name: "my-node-pool"
  vsphere:
    datastore: "my-datastore"

Si vous spécifiez une valeur pour ce champ, ne spécifiez pas de valeur pour nodePools[i].vsphere.storagePolicyName.

nodePools[i].vsphere.storagePolicyName

Facultatif
Chaîne
mutable
Par défaut: Valeur de vCenter.storagePolicyName

Nom d'une règle de stockage de VM pour les nœuds du pool.

Pour en savoir plus, consultez la page Configurer une règle de stockage.

Exemple :

nodePools:
- name: "my-node-pool"
  vsphere:
    storagePolicyName: "my-storage-policy"

Si vous spécifiez une valeur pour ce champ, ne spécifiez pas de valeur pour nodePools[i].vsphere.datastore.

nodePools[i].vsphere.hostgroups

Remplissez cette section si vous souhaitez configurer votre cluster pour utiliser l'affinité VM-hôte.

Facultatif
Mutable
Tableau de chaînes, chacune correspondant au nom d'un groupe DRS hôte.

Le tableau ne peut comporter qu'un seul élément.

Exemple :

nodePools:
- name: "my-node-pool"
  vsphere:
    hostgroups:
    - "my-hostgroup"

nodePools[i].vsphere.tags

Facultatif
Mutable
Tableau d'objets, chacun décrivant un tag vSphere à placer sur les VM du pool de nœuds.

Chaque tag comprend une catégorie et un nom.

Exemple :

nodePools:
- name: "my-node-pool"
  vsphere:
    tags:
    - category: "purpose"
      name: "testing"

Si vous souhaitez associer des tags à toutes les VM d'un pool de nœuds, votre compte utilisateur vCenter doit disposer de ces droits d'ajout de tags vSphere :

  • "vSphere Tagging.Assign" ou "Unassign vSphere Tag"
  • "vSphere Tagging.Assign" ou "Unassign vSphere Tag on Object" (vSphere 7)

nodePools[i].autoscaling

Facultatif
Mutable

Si vous souhaitez activer le scaling automatique pour le pool de nœuds, renseignez cette section. Sinon, supprimez cette section ou laissez-la en commentaire.

nodePools[i].autoscaling.minReplicas

Facultatif
Mutable
Entier
Valeurs possibles: supérieures ou égales à 1
Prérempli: 0

Nombre minimal de nœuds que l'autoscaler peut définir pour le pool.

Exemple :

nodePools:
- name: "my-node-pool"
  autoscaling:
    minReplicas: 5

nodePools[i].autoscaling.maxReplicas

Facultatif
Mutable
Entier
Prérempli: 0

Nombre maximal de nœuds que l'autoscaler peut définir pour le pool.

Exemple :

nodePools:
- name: "my-node-pool"
  autoscaling:
    maxReplicas: 10

nodePools[i].enableLoadBalancer

Facultatif
Pertinent si loadBalancer.kind = "MetalLB"
Mutable
Booléen
Prérempli: true
Valeur par défaut: false

Définissez cette valeur sur true si vous souhaitez autoriser le locuteur MetalLB à s'exécuter sur les nœuds du pool. Sinon, définissez cette valeur sur false.

Pour en savoir plus, consultez la page Équilibrage de charge groupé avec MetalLB.

Exemple :

nodePools:
- name: "my-node-pool"
  enableLoadBalancer: true

nodePools[i].updateStrategy.rollingUpdate.maxSurge

Aperçu
Facultatif
Mutable
Entier
Par défaut: 1

Nombre maximal de machines du pool de nœuds pouvant être mises à jour simultanément lors d'une mise à jour ou d'une mise à niveau.

nodePools:
- name: "my-node-pool"
  updateStrategy:
    rollingUpdate:
      maxSurge: 3

antiAffinityGroups.enabled

Facultatif
Mutable
Booléen
Prérempli: true

Définissez ce paramètre sur true pour activer la création de règles DRS. Sinon, définissez cette valeur sur false.

Exemple :

antiAffinityGroups:
  enabled: true

Si ce champ est true, GKE sur VMware crée des règles anti-affinité VMware Distributed Resource Scheduler (DRS) pour les nœuds de votre cluster d'utilisateur, ce qui entraîne leur propagation sur au moins trois hôtes ESXi physiques dans votre centre de données.

Cette fonctionnalité nécessite que votre environnement vSphere remplisse les conditions suivantes :

  • La fonctionnalité VMware DRS est activée. VMware DRS nécessite l'édition de licence vSphere Enterprise Plus.

  • Votre compte utilisateur vSphere dispose du privilège Host.Inventory.Modify cluster.

  • Au moins quatre hôtes ESXi sont disponibles.

Même si la règle exige que les nœuds du cluster soient répartis sur trois hôtes ESXi, nous vous recommandons vivement d'avoir au moins quatre hôtes ESXi disponibles.

Rappelez-vous que si vous possédez une licence standard vSphere, vous ne pouvez pas activer VMware DRS.

Si le DRS n'est pas activé ou si vous ne disposez pas d'au moins quatre hôtes sur lesquels les VM vSphere peuvent être programmées, définissez antiAffinityGroups.enabled sur false.

enableVMTracking

Aperçu
Facultatif
Immutable
Prérempli: faux

Définissez cette valeur sur true pour activer le suivi des VM avec les tags vSphere. Sinon, définissez cette valeur sur false.

Pour en savoir plus, consultez la page Activer le suivi des VM.

Exemple :

enableVMTracking: true

nodePoolUpdatePolicy.maximumConcurrentNodePoolUpdate

Facultatif
Entier
Valeurs possibles: 0 ou 1 Prérempli: 0

Nombre de pools de nœuds à mettre à jour à la fois. La valeur 1 indique qu'un pool de nœuds peut être mis à jour à la fois. La valeur 0 indique qu'un nombre illimité de pools de nœuds peut être mis à jour à la fois.

Exemple :

nodePoolUpdatePolicy:
  maximumConcurrentNodePoolUpdate: 1

nodePoolUpdatePolicy.updateStrategy.rollingUpdate.maxSurge

Aperçu
Facultatif
Mutable
Entier
Par défaut: 1

Nombre maximal de machines d'un pool de nœuds pouvant être mises à jour simultanément lors d'une mise à jour ou d'une mise à niveau. S'applique à tous les pools de nœuds qui ne spécifient pas leur propre stratégie de mise à jour.

nodePools:
- name: "my-node-pool"
  updateStrategy:
    rollingUpdate:
      maxSurge: 3

authentication

Cette section contient des informations sur la manière dont les utilisateurs du cluster sont authentifiés et autorisés.

authentication.oidc

N'utilisez pas cette section. À la place, après la création du cluster, modifiez la ressource personnalisée ClientConfig, comme décrit dans la section Configurer des clusters pour Anthos Identity Service avec OIDC.

authentication.sni

Facultatif

Si vous souhaitez fournir un certificat de diffusion supplémentaire pour le serveur d'API Kubernetes du cluster, renseignez cette section. Sinon, supprimez cette section ou laissez-la en commentaire.

authentication.sni.certPath

Facultatif
Chaîne

Chemin d'accès d'un certificat de diffusion pour le serveur d'API Kubernetes.

Exemple :

authentication:
  sni:
    certPath: "my-cert-folder/example.com.crt"

authentication.sni.keyPath

Facultatif
Chaîne

Chemin du fichier de clé privée du certificat.

Exemple :

authentication:
  sni:
    keyPath: "my-cert-folder/example.com.key"

gkeConnect

Obligatoire
Immutable

Cette section contient des informations sur le projet et le compte de service Google Cloud que vous souhaitez utiliser pour enregistrer votre cluster dans un parc Google Cloud.

gkeConnect.projectID

Obligatoire
Chaîne
immuable

L'ID de votre projet hôte de parc. Pour les nouveaux clusters, cet ID de projet doit être identique à celui défini dans stackdriver.projectID et cloudAuditLogging.projectID. Si les ID de projet ne sont pas identiques, la création du cluster échoue. Cette exigence ne s'applique pas aux clusters existants.

Exemple :

gkeConnect:
  projectID: "my-fleet-host-project"

gkeConnect.location

Facultatif
Chaîne
Immutable
Par défaut: global

L'appartenance au parc de chaque cluster est gérée par le service de parc (gkehub.googleapis.com) et le service Connect (gkeconnect.googleapis.com). L'emplacement des services peut être global ou régional. À partir de la version 1.28, vous pouvez éventuellement spécifier la région Google Cloud dans laquelle le parc et les services Connect s'exécutent. Si aucune valeur n'est spécifiée, les instances globales des services sont utilisées. Veuillez noter les points suivants :

  • Les clusters d'utilisateur créés avant la version 1.28 sont gérés par le parc mondial et les services Connect.

  • Les clusters créés à l'aide des clients API GKE On-Prem (console Google Cloud, Google Cloud CLI ou Terraform) utilisent la même région que celle spécifiée pour l'API GKE On-Prem.

  • Pour les nouveaux clusters, si vous incluez ce champ, la région que vous spécifiez doit être identique à celle configurée dans cloudAuditLogging.clusterLocation, stackdriver.clusterLocation et gkeOnPremAPI.location. Si les régions ne sont pas identiques, la création du cluster échoue.

Exemple :

gkeConnect:
  location: "us-central1"

gkeConnect.registerServiceAccountKeyPath

Obligatoire
Chaîne
mutable

Chemin d'accès au fichier de clé JSON de votre compte de service connect-register.

Pour mettre à jour la valeur de ce champ, utilisez gkectl update cluster.

Pour en savoir plus sur la modification de votre clé de compte de service connect-register, consultez la section Alterner les clés de compte de service.

Exemple :

gkeConnect:
  registerServiceAccountKeyPath: "my-key-folder/connect-register-key.json"

gkeConnect.registerServiceAccountKey.secretRef.version

Obligatoire si vous utilisez des identifiants préparés
Mutable
Chaîne
Valeurs possibles: chaîne entière ou "latest"
Valeur par défaut: "latest"

Version d'un secret préparé dans le cluster d'administrateur contenant une clé JSON pour votre compte de service connect-register.

Exemple :

gkeConnect:
  registerServiceAccountKey:
    secretRef:
      version: "1"

gkeOnPremAPI

Facultatif

À partir de la version 1.16, si l'API GKE On-Prem est activée dans votre projet Google Cloud, tous les clusters du projet sont enregistrés automatiquement dans l'API GKE On-Prem dans la région configurée dans stackdriver.clusterLocation.

  • Si vous souhaitez enregistrer tous les clusters du projet dans l'API GKE On-Prem, suivez la procédure décrite dans la section Avant de commencer pour activer et utiliser l'API GKE On-Prem dans le projet.

  • Si vous ne souhaitez pas enregistrer le cluster dans l'API GKE On-Prem, incluez cette section et définissez gkeOnPremAPI.enabled sur false. Si vous ne souhaitez enregistrer aucun cluster dans le projet, désactivez gkeonprem.googleapis.com (nom du service pour l'API GKE On-Prem) dans le projet. Pour obtenir des instructions, consultez la section Désactiver des services.

L'enregistrement de votre cluster d'utilisateur dans l'API GKE On-Prem vous permet d'utiliser les outils standards (console Google Cloud, Google Cloud CLI et Terraform) pour gérer le cycle de vie du cluster. De plus, l'enregistrement du cluster vous permet d'utiliser la console ou la gcloud CLI pour afficher les détails du cluster. Par exemple, vous pouvez exécuter des commandes gcloud pour obtenir des informations sur votre cluster d'utilisateur.

Une fois que vous avez ajouté cette section et créé ou mis à jour le cluster, si vous supprimez la section et mettez à jour le cluster, la mise à jour échouera.

gkeOnPremAPI.enabled

Obligatoire si la section gkeOnPremAPI est incluse.
Mutable
Booléen
Par défaut: true

Par défaut, le cluster est enregistré dans l'API GKE On-Prem si celle-ci est activée dans votre projet. Définissez la valeur sur false si vous ne souhaitez pas enregistrer le cluster.

Une fois le cluster enregistré dans l'API GKE On-Prem, si vous devez le désenregistrer, apportez la modification suivante, puis mettez-le à jour:

gkeOnPremAPI:
  enabled: false

gkeOnPremAPI.location

Obligatoire si la section gkeOnPremAPI est incluse.
Chaîne immuable
Chaîne
Par défaut: stackdriver.clusterLocation

Région Google Cloud dans laquelle l'API GKE On-Prem s'exécute et stocke les métadonnées du cluster. Choisissez l'une des régions disponibles. Vous devez utiliser la même région que celle configurée dans gkeConnect.location, stackdriver.clusterLocation et cloudAuditLogging.clusterLocation. Si gkeOnPremAPI.enabled est défini sur false, n'incluez pas ce champ.

stackdriver

Obligatoire par défaut
Mutable

Si vous souhaitez activer Cloud Logging et Cloud Monitoring pour votre cluster, renseignez cette section. Sinon, supprimez cette section ou laissez-la en commentaire.

Cette section est obligatoire par défaut. Autrement dit, si vous n'incluez pas cette section, vous devez inclure l'option --skip-validation-stackdriver lorsque vous exécutez gkectl create cluster.

Cette section est requise dans le cluster d'utilisateur si vous souhaitez gérer le cycle de vie des clusters d'utilisateur dans la console Google Cloud.

stackdriver.projectID

Requis pour Logging et Monitoring
Chaîne immuable

L'ID de votre projet hôte de parc. Pour les nouveaux clusters, cet ID de projet doit être identique à celui défini dans gkeConnect.projectID et cloudAuditLogging.projectID. Si les ID de projet ne sont pas identiques, la création du cluster échoue. Cette exigence ne s'applique pas aux clusters existants.

Si nécessaire, vous pouvez configurer un routeur de journaux dans ce projet pour acheminer les journaux vers les buckets de journaux d'un autre projet. Pour en savoir plus sur la configuration du routeur de journaux, consultez la section Destinations compatibles.

Exemple :

stackdriver:
  projectID: "my-fleet-host-project"

stackdriver.clusterLocation

Requis pour Logging et Monitoring
Chaîne immuable
Chaîne
Prérempli: "us-central1"

Région Google Cloud dans laquelle vous souhaitez stocker les journaux. Nous vous recommandons de choisir une région à proximité de votre centre de données sur site.

Pour les nouveaux clusters, si vous incluez les sections gkeOnPremAPI et cloudAuditLogging dans le fichier de configuration, la région que vous définissez ici doit être la même que celle définie dans gkeConnect.location, gkeOnPremAPI.location et cloudAuditLogging.clusterLocation. Si les régions ne sont pas identiques, la création du cluster échoue.

Exemple :

stackdriver:
  clusterLocation: "us-central1"

stackdriver.enableVPC

Facultatif
Immutable
Booléen
Prérempli: faux

Si le réseau de votre cluster est contrôlé par un VPC, définissez la valeur sur true. Ainsi, toute la télémétrie passe par les adresses IP restreintes de Google. Sinon, définissez cette valeur sur false.

Exemple :

stackdriver:
  enableVPC: false

stackdriver.serviceAccountKeyPath

Requis pour Logging et Monitoring
Chaîne modifiable

Chemin du fichier de clé JSON pour votre compte de service de journalisation-surveillance.

Pour mettre à jour la valeur de ce champ, utilisez gkectl update cluster.

Pour en savoir plus sur la modification de votre clé de compte de service logging-monitoring, consultez la section Alterner les clés de compte de service.

Exemple :

stackdriver:
  serviceAccountKeyPath: "my-key-folder/log-mon-key.json"

stackdriver.serviceAccountKey.secretRef.version

Obligatoire si vous utilisez des identifiants préparés
Mutable
Chaîne
Valeurs possibles: chaîne entière ou "latest"
Valeur par défaut: "latest"

Version d'un secret préparé dans le cluster d'administrateur contenant une clé JSON pour votre compte de service de surveillance de la journalisation.

Exemple :

stackdriver:
  serviceAccountKey:
    secretRef:
      version: "1"

stackdriver.disableVsphereResourceMetrics

Facultatif
Mutable
Booléen
Prérempli: false
Par défaut: false

Définissez cette valeur sur true pour désactiver la collecte de métriques depuis vSphere. Sinon, définissez cette valeur sur false.

Exemple :

stackdriver:
  disableVsphereResourceMetrics: true

usageMetering

Aperçu
Immutable
Facultatif

Si vous souhaitez activer la mesure de l'utilisation de votre cluster, renseignez cette section. Sinon, supprimez cette section ou laissez-la en commentaire.

usageMetering.bigQueryProjectID

Aperçu
Obligatoire pour la mesure de l'utilisation
Chaîne immuable

ID du projet Google Cloud dans lequel vous souhaitez stocker les données de mesure de l'utilisation.

Exemple :

usageMetering:
  bigQueryProjectID: "my-bq-project"

usageMetering.bigQueryDatasetID

Aperçu
Obligatoire pour la mesure de l'utilisation
Chaîne immuable

ID de l'ensemble de données BigQuery dans lequel vous souhaitez stocker les données de mesure de l'utilisation. Exemple :

usageMetering:
  bigQueryDatasetID: "my-bq-dataset"

usageMetering.bigQueryServiceAccountKeyPath

Aperçu
Obligatoire pour la mesure de l'utilisation
Chaîne immuable
.

Chemin d'accès au fichier de clé JSON de votre compte de service BigQuery.

Pour mettre à jour la valeur de ce champ, utilisez gkectl update cluster.

Pour en savoir plus sur la modification de votre clé de compte de service BigQuery, consultez la section Effectuer une rotation des clés de compte de service.

Exemple :

usageMetering:
  bigQueryServiceAccountKeyPath: "my-key-folder/bq-key.json"

usageMetering.bigQueryServiceAccountKey.secretRef.version

Obligatoire si vous utilisez des identifiants préparés
Mutable
Chaîne
Valeurs possibles: chaîne entière ou "latest"
Valeur par défaut: "latest"

Version d'un code secret préparé dans le cluster d'administrateur contenant une clé JSON pour votre compte de service BigQuery.

Exemple :

gkeConnect:
  bigQueryServiceAccountKey:
    secretRef:
      version: "1"

usageMetering.enableConsumptionMetering

Aperçu
Obligatoire pour la mesure de l'utilisation
Immutable
Booléen
Prérempli: faux

Définissez cette valeur sur true si vous souhaitez activer la mesure basée sur la consommation. Sinon, définissez-la sur "false".

Exemple :

usageMetering:
  enableConsumptionMetering: true

cloudAuditLogging

Si vous souhaitez intégrer les journaux d'audit du serveur d'API Kubernetes de votre cluster aux journaux d'audit Cloud, remplissez cette section. Sinon, supprimez cette section ou laissez-la en commentaire.

cloudAuditLogging.projectID

Requis pour Cloud Audit Logs
Chaîne immuable

L'ID du projet hôte de votre parc. Pour les nouveaux clusters, cet ID de projet doit être identique à celui défini dans gkeConnect.projecID et stackdriver.projectID. Si les ID de projet ne sont pas identiques, la création du cluster échoue. Cette exigence ne s'applique pas aux clusters existants.

Si nécessaire, vous pouvez configurer un routeur de journaux dans ce projet pour acheminer les journaux vers les buckets de journaux d'un autre projet. Pour en savoir plus sur la configuration du routeur de journaux, consultez la section Destinations compatibles.

Exemple :

cloudAuditLogging:
  projectID: "my-fleet-host-project"

cloudAuditLogging.clusterLocation

Requis pour Cloud Audit Logs
Chaîne immuable

Région Google Cloud dans laquelle vous souhaitez stocker les journaux d'audit. Nous vous recommandons de choisir une région à proximité de votre centre de données sur site.

Pour les nouveaux clusters, si vous incluez les sections gkeOnPremAPI et stackdriver dans le fichier de configuration, la région que vous définissez ici doit être la même que celle définie dans gkeConnect.location, gkeOnPremAPI.location et stackdriver.clusterLocation. Si les régions ne sont pas identiques, la création du cluster échoue.

Exemple :

cloudAuditLogging:
  clusterLocation: "us-central1"

cloudAuditLogging.serviceAccountKeyPath

Requis pour Cloud Audit Logs
Chaîne modifiable

Chemin d'accès au fichier de clé JSON de votre compte de service de journalisation-audit.

Pour mettre à jour la valeur de ce champ, utilisez gkectl update cluster.

Pour en savoir plus sur la modification de votre clé de compte de service de journalisation d'audit, consultez la section Alterner les clés de compte de service.

Exemple :

cloudAuditLogging:
  serviceAccountKeyPath: "my-key-folder/audit-log-key.json"

cloudAuditLogging.serviceAccountKey.secretRef.version

Facultatif
Mutable
Chaîne
Valeurs possibles: chaîne entière ou "latest"
Valeur par défaut: "latest"

Version d'un secret préparé dans le cluster d'administrateur contenant une clé JSON pour votre compte de service de journalisation d'audit.

Exemple :

cloudAuditLogging:
  serviceAccountKey:
    secretRef:
      version: "1"

autoRepair.enabled

Facultatif
Mutable
Booléen
Prérempli: true

Définissez cette valeur sur true pour activer la réparation automatique des nœuds. Sinon, définissez cette valeur sur false.

Exemple :

autoRepair:
  enabled: true

secretsEncryption

Si vous souhaitez chiffrer des secrets sans avoir besoin de KMS externe (Key Management Service) ni d'autres dépendances, remplissez cette section. Sinon, supprimez cette section ou laissez-la en commentaire.

secretsEncryption.mode

Requis pour le chiffrement des secrets
Immutable
Chaîne
Valeur possible: "GeneratedKey"
Prérempli: "GeneratedKey"

Mode de chiffrement du secret.

secretsEncryption:
  mode: "GeneratedKey"

secretsEncryption.generatedKey.keyVersion

Obligatoire pour le chiffrement des secrets
Mutable
Entier
Prérempli: 1

Entier de votre choix à utiliser pour le numéro de version de clé. Nous vous recommandons de commencer par 1.

Pour savoir comment mettre à jour ce champ pour un cluster existant, consultez la page Chiffrement des secrets toujours activé.

Exemple :

secretsEncryption:
  generatedKey:
    keyVersion: 1

secretsEncryption.generatedKey.disabled

Facultatif pour le chiffrement des secrets
Mutable
Booléen
Prérempli: faux

Définissez cette valeur sur true pour désactiver le chiffrement des secrets. Sinon, définissez-la sur false.

Pour savoir comment mettre à jour ce champ pour un cluster existant, consultez la page Chiffrement des secrets toujours activé.

Exemple :

secretsEncryption:
  generatedKey:
    disabled: false