Fichier de configuration du cluster d'administrateur

Cette page décrit les champs du fichier de configuration du cluster d'administrateur.

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

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

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

Pour générer un modèle pour votre fichier de configuration de cluster d'administrateur :

gkectl create-config admin --config=[OUTPUT_FILENAME]

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

Remplir votre fichier de configuration

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

bundlePath

Chaîne. Chemin de votre fichier de groupe GKE On-Prem.

Le fichier de groupe complet GKE On-Prem contient tous les composants d'une version spécifique de GKE On-Prem. Lorsque vous créez un poste de travail d'administrateur, celui-ci est fourni avec un groupe complet dans :

/var/lib/gke/bundles/gke-onprem-vsphere-[VERSION]-full.tgz

Exemple :

bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.5.0-gke.27-full.tgz"

vCenter

Cette section contient des informations sur votre environnement vCenter.

vCenter.address

Chaîne. Adresse IP ou nom d'hôte de votre serveur vCenter.

Avant de remplir le champ address, téléchargez et inspectez le certificat de diffusion de votre serveur vCenter. Saisissez la commande suivante pour télécharger le certificat et l'enregistrer dans un fichier nommé vcenter.pem.

true | openssl s_client -connect [VCENTER_IP]:443 -showcerts 2>/dev/null | sed -ne '/-BEGIN/,/-END/p' > vcenter.pem

[VCENTER_IP] est l'adresse IP du serveur vCenter.

Ouvrez le fichier de certificat pour afficher le nom commun d'objet et le nom alternatif d'objet :

openssl x509 -in vcenter.pem -text -noout

Le résultat indique le nom commun (CN) d'objet (Subject). Il peut s'agir d'une adresse IP ou d'un nom d'hôte. Exemple :

Subject: ... CN = 203.0.113.100
Subject: ... CN = my-vcenter-server.my-domain.example

Le résultat peut également inclure un ou plusieurs noms DNS sous Subject Alternative Name :

X509v3 Subject Alternative Name:
    DNS:vcenter.my-domain.example

Choisissez le nom commun Subject ou l'un des noms DNS sous Subject Alternative Name pour l'utiliser comme valeur du champ vcenter.address dans votre fichier de configuration. Exemple :

vCenter:
  address: "203.0.113.100"
vCenter:
  address: "my-vcenter-server.my-domain.example"

vCenter.datacenter

Chaîne. Nom de votre centre de données vCenter. Exemple :

vCenter:
  datacenter: "MY-DATACENTER"

vCenter.cluster

Chaîne. Nom de votre cluster vCenter. Exemple :

vCenter:
  cluster: "MY-CLUSTER"

vCenter.resourcePool

Chaîne. Nom de votre pool de ressources vCenter. Exemple :

Si vous utilisez un pool de ressources autre que celui par défaut, indiquez le nom de votre pool de ressources vCenter. Exemple :

vCenter:
  resourcePool: "MY-POOL"

Si vous utilisez le pool de ressources par défaut, indiquez la valeur suivante :

vCenter:
  resourcePpool: "[VCENTER_CLUSTER]/Resources"

[VCENTER_CLUSTER] est le nom de votre cluster vCenter.

vCenter.datastore

Chaîne. Nom de votre magasin de données vCenter. Exemple :

vCenter:
  datastore: "MY-DATASTORE"

Consultez la section Spécifier le pool de ressources racine pour un hôte autonome.

vCenter.caCertPath

Chaîne. Lorsqu'un client, tel que GKE On-Prem, envoie une requête à votre serveur vCenter, celui-ci doit prouver son identité au client en présentant un certificat ou un groupe de certificats. Pour valider le certificat ou le groupe, GKE On-Prem doit avoir le certificat racine dans la chaîne de confiance.

Définissez vCenter.caCertPath sur le chemin d'accès au certificat racine. Exemple :

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

Votre installation VMware comporte une autorité de certification qui émet un certificat sur votre serveur vCenter. Le certificat racine de la chaîne de confiance est un certificat autosigné créé par VMware.

Si vous ne souhaitez pas utiliser l'autorité de certification VMWare, qui est définie par défaut, vous pouvez configurer VMware de sorte à utiliser une autre autorité de certification.

Si votre serveur vCenter utilise un certificat émis par l'autorité de certification VMware par défaut, téléchargez-le comme suit :

curl -k "https://[SERVER_ADDRESS]/certs/download.zip" > download.zip

[SERVER_ADDRESS] est l'adresse de votre serveur vCenter.

Installez la commande unzip et décompressez le fichier de certificat :

sudo apt-get install unzip
unzip downloads.zip

Si la commande de décompression ne fonctionne pas au premier essai, saisissez-la à nouveau.

Recherchez le fichier de certificat dans certs/lin.

vCenter.credentials.fileRef.path

Chaîne. 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. Exemple :

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

vCenter.credentials.fileRef.entry

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 utilisateur vCenter. Exemple :

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

vCenter.dataDisk

Chaîne. GKE On-Prem crée un disque de machine virtuelle (VMDK) pour stocker les données d'objet Kubernetes. Le programme d'installation crée le VMDK, mais vous devez lui attribuer un nom dans le champ vCenter.dataDisk. Exemple :

vCenter:
  dataDisk: "my-disk.vmdk"

network

Cette section préserve des informations sur votre réseau de clusters d'administrateur.

network.hostConfig

Si vous souhaitez remplacer certaines valeurs figurant dans vos fichiers hostconfig, remplissez cette section. Sinon, supprimez cette section.

Les valeurs que vous saisissez dans cette section remplacent les valeurs figurant dans le fichier hostconfig de votre cluster d'administrateur et dans le fichier hostconfig de l'équilibreur de charge Seesaw de votre cluster d'administrateur.

network.hostConfig.dnsServers

Tableau de chaînes Adresses des serveurs DNS que les hôtes utilisent. Exemple :

network:
  hostConifg:
    dnsServers:
    - "172.16.255.1"
    - "172.16.255.2"

network.hostConfig.ntpServers

Tableau de chaînes Adresses des serveurs de temps que les hôtes utilisent. Exemple :

network:
  hostConifg:
    ntpServers:
    - "216.239.35.0"

network.hostConfig.searchDomainsForDNS

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:
  hostConifg:
    searchDomainsForDNS:
    - "my.local.com"

network.ipMode.type

Chaîne. 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

Si vous définissez ipMode.type sur "static", renseignez ce champ.

Si vous définissez ipMode.type sur "dhcp", supprimez ce champ.

Chaîne. Chemin d'accès du fichier hostconfig pour votre cluster d'administrateur. Exemple :

network:
  ipMode:
    ipBlockFilePath: "/my-config-folder/admin-hostconfig.yaml"

network.serviceCIDR et network.podCiDR

Chaînes. Le cluster d'administrateur doit disposer d'une plage d'adresses IP à utiliser pour les services et d'une plage d'adresses IP à utiliser pour les pods. Ces plages sont spécifiées par les champs network.serviceCIDR et network.podCIDR. Ces champs sont renseignés avec des valeurs par défaut. Si vous le souhaitez, vous pouvez remplacer les valeurs renseignées par les valeurs de votre choix.

Les plages de services et de pods ne doivent pas se chevaucher. En outre, les plages des services et des pods ne doivent pas chevaucher les adresses IP utilisées pour les nœuds d'un cluster.

Exemple :

network:
  ...
  serviceCIDR: "10.96.232.0/24"
  podCIDR: "192.168.0.0/16"

network.vCenter.networkName

Chaîne. Nom du réseau vSphere pour vos nœuds de cluster.

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, il est possible de spécifier un chemin d'accès au réseau, tel que /DATACENTER/network/NETWORK_NAME.

Exemple :

network:
  vCenter:
    networkName: "MY-CLUSTER-NETWORK"

loadBalancer

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

loadBalancer.vips.controlPlaneVIP

Chaîne. Adresse IP que vous avez choisie de configurer sur l'équilibreur de charge pour le serveur d'API Kubernetes du cluster d'administrateur. Exemple :

loadBalancer:
  vips:
    controlplaneVIP: "203.0.113.3"

loadBalancer.vips.addonsVIP

Chaîne. Adresse IP que vous avez choisie de configurer sur l'équilibreur de charge pour les modules complémentaires. Exemple :

loadBalancer:
  vips:
    addonsVIP: "203.0.113.4"

loadBalancer.kind

Chaîne. Définissez ce paramètre sur "Seesaw", "F5BigIP" ou "ManualLB". Exemple :

loadBalancer:
  kind: "Seesaw"

loadBalancer.manualLB

Si vous définissez loadbalancer.kind sur "ManualLB", remplissez cette section. Sinon, supprimez cette section.

loadBalancer.manualLB.ingressHTTPNodePort

Supprimez ce champ de votre fichier de configuration. Il n'est pas utilisé dans un cluster d'administrateur.

loadBalancer.manualLB.ingressHTTPSNodePort

Supprimez ce champ de votre fichier de configuration. Il n'est pas utilisé dans un cluster d'administrateur.

loadBalancer.manualLB.controlPlaneNodePort

Entier. Le serveur d'API Kubernetes du cluster d'administrateur est mis en œuvre en tant que service de type NodePort. Vous devez choisir une valeur nodePort pour le service.

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

loadBalancer:
  manualLB:
    contolPLaneNodePort: 30968

loadBalancer.manualLB.addonsNodePort

Entier. Le serveur de modules complémentaires du cluster d'administrateur est mis en œuvre en tant que service de type NodePort. Vous devez choisir une valeur nodePort pour le service.

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

loadBalancer:
  manualLB:
    addonsNodePort: 31405

loadBalancer.f5BigIP

Si vous définissez loadbalancer.kind sur "f5BigIP", remplissez cette section. Sinon, supprimez cette section.

loadBalancer.f5BigIP.address

Chaîne. Adresse de votre équilibreur de charge F5 BIG-IP. Exemple :

loadBalancer:
  f5BigIP:
    address: "203.0.113.2"

loadBalancer.f5BigIP.fileRef.path

Chaîne. 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 On-Prem peut utiliser pour se connecter à votre équilibreur de charge F5 BIG-IP. Exemple :

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

loadBalancer.f5BigIP.fileRef.entry

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:
    fileRef:
      entry: "f5-creds"

loadBalancer.f5BigIP.partition

Chaîne. Nom d'une partition BIG-IP que vous avez créée pour votre cluster d'administrateur. Exemple :

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

loadBalancer.f5BigIP.snatPoolName

Chaîne. Si vous utilisez SNAT, nom de votre pool SNAT. Si vous n'utilisez pas SNAT, supprimez ce champ. Exemple :

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

loadBalancer.seesaw

Si vous définissez loadbalancer.kind sur "Seesaw", remplissez cette section. Sinon, supprimez cette section.

loadBalancer.seesaw.ipBlockFilePath

Chaîne. Définissez ce paramètre sur le chemin du fichier hostconfig de vos VM Seesaw. Exemple :

loadBalancer:
  seesaw:
    ipBlockFilePath: "admin-seesaw-hostconfig.yaml"

loadBalancer.seesaw.vird

Entier. Identifiant de routeur virtuel de votre VM Seesaw. Cet identifiant doit être unique dans un VLAN. La plage valide est comprise entre 1 et 255. Exemple :

loadBalancer:
  seesaw:
    vrid: 125

loadBalancer.seesaw.masterIP

Chaîne. Adresse IP virtuelle de votre VM Seesaw ou de votre paire de VM. Exemple :

loadBalancer:
  seesaw:
    masterIP: 172.16.20.21

loadBalancer.seesaw.cpus

Entier. Nombre de processeurs de votre VM Seesaw. Exemple :

loadBalancer:
  seesaw:
    cpus: 8

loadBalancer.seesaw.memoryMB

Entier. Nombre de mégaoctets de mémoire pour votre VM Seesaw. Exemple :

loadBalancer:
  seesaw:
    memoryMB: 8192

loadBalancer.seesaw.vCenter.networkName

Chaîne. Nom du réseau contenant vos VM Seesaw. Exemple :

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

loadBalancer.seesaw.enableHA

Valeur booléenne. 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. Exemple :

loadBalancer:
  seesaw:
    enableHA: true

antiAffinityGroups.enabled

Valeur booléenne. 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

GKE On-Prem crée automatiquement des règles anti-affinités VMware DRS (Distributed Resource Scheduler) pour les nœuds de votre cluster d'administrateur, avec pour effet de les répartir sur au moins trois hôtes 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 trois hôtes physiques sont disponibles.

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

Si vous n'avez pas activé DRS ou si vous n'avez pas au moins trois hôtes sur lesquels les VM vSphere peuvent être planifiées, définissez antiAffinityGroups.enabled sur false.

proxy

Si votre réseau est protégé par un serveur proxy, remplissez cette section. Sinon, supprimez cette section.

proxy.url

Chaîne. Adresse HTTP de votre serveur proxy. Incluez le numéro de port même s'il est identique au port par défaut du schéma. Exemple :

proxy:
  url: "http://my-proxy.example.local:80"

Le serveur proxy que vous spécifiez ici est utilisé par vos clusters GKE On-Prem. En outre, votre poste de travail d'administrateur est automatiquement configuré pour utiliser ce même serveur proxy, sauf si vous définissez la variable d'environnement HTTPS_PROXY sur votre poste de travail d'administrateur.

Si vous spécifiez proxy.url, vous devez également spécifier proxy.noProxy.

proxy.noProxy

Chaîne. Liste d'adresses IP, de plages d'adresses IP, de noms d'hôte et de noms de domaine séparés par une virgule qui ne doivent pas passer par le serveur proxy. Lorsque GKE On-Prem envoie une requête à l'une de ces adresses ou à l'un de ces hôtes ou domaines, la requête est envoyée directement. Exemple :

proxy:
  noProxy: "10.151.222.0/24, my-host.example.local,10.151.2.1"

privateRegistry

Si vous disposez d'un registre Docker privé, remplissez cette section. Sinon, supprimez cette section.

privateRegistry.address

Chaîne. Adresse IP de la machine qui exécute votre registre Docker privé. Exemple :

privateRegistry:
  address: "203.0.113.10"

privateRegistry.credentials.fileRef.path

Chaîne. 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 On-Prem peut utiliser pour accéder à votre registre Docker privé. Exemple :

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

privateRegistry.credentials.fileRef.entry

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 de registre Docker privé.

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

privateRegistry.caCertPath

Chaîne. 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"

gcrKeyPath

Chaîne. Chemin du fichier de clé JSON du compte de service que vous souhaitez utiliser pour télécharger les composants GKE On-Prem. Exemple :

gcrKeyPath: "my-key-folder/access-key.json"

stackdriver

Cette section contient des informations sur le projet et le compte de service que vous souhaitez utiliser pour stocker les journaux et les métriques.

stackdriver.projectID

Chaîne. ID du projet Google Cloud dans lequel vous souhaitez afficher les journaux. Exemple :

stackdriver:
  projectID: "my-logs-project"

stackdriver.clusterLocation

Chaîne. 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. Exemple :

stackdriver:
  clusterLocation: "us-central1"

stackdriver.enableVPC

Valeur booléenne. Si le réseau de votre cluster est contrôlé par un VPC, définissez ce champ sur true. Ainsi, toute la télémétrie passe par les adresses IP restreintes de Google. Sinon, définissez ce champ sur false. Exemple :

stackdriver:
  enableVPC: false

stackdriver.serviceAccountKeyPath

Chaîne. Chemin du fichier de clé JSON pour votre compte de service de journalisation-surveillance. Exemple :

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

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.

cloudAuditLogging.projectid

Chaîne. ID du projet Google Cloud dans lequel vous souhaitez afficher les journaux d'audit. Exemple :

cloudAuditLogging:
  projectid: "my-audit-project"

cloudAuditLogging.clusterlocation

Chaîne. 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. Exemple :

cloudAuditLogging:
  clusterlocation: "us-central1"

cloudAuditLogging.serviceaccountkeypath

Chaîne. Chemin d'accès au fichier de clé JSON de votre compte de service de journalisation-audit. Exemple :

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

autoRepair.enabled

Valeur booléenne. 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