Créer un cluster d'administrateur

Ce document explique comment créer un cluster d'administrateur pour Anthos clusters on VMware (GKE On-Prem). Le cluster d'administrateur exécute le plan de contrôle Kubernetes pour le cluster d'administrateur lui-même et pour les clusters d'utilisateur associés. Vous devez créer un cluster d'administrateur avant de créer des clusters d'utilisateur pour exécuter vos charges de travail.

Pour en savoir plus sur le cluster d'administrateur, consultez la présentation de l'installation.

Présentation de la procédure

Voici les principales étapes à suivre pour créer un cluster d'administrateur :

  1. Se connecter au poste de travail administrateur
    Cette VM dispose des outils nécessaires pour créer des clusters.
  2. Remplir vos fichiers de configuration
    Spécifiez les détails de votre nouveau cluster d'administrateur en remplissant et en validant un fichier de configuration du cluster d'administrateur, un fichier de configuration des identifiants, et éventuellement un fichier de bloc d'adresses IP.
  3. Importez des images d'OS dans vSphere et transférez des images de conteneurs vers le registre privé, le cas échéant.
    Exécutez gkectl prepare.
  4. (Facultatif) Créer un équilibreur de charge Seesaw.
    Si vous avez décidé d'utiliser l'équilibreur de charge Seesaw, exécutez gkectl create loadbalancer.
  5. Créez un cluster d'administrateur.
    Utilisez gkectl pour créer un cluster d'administrateur comme spécifié dans vos fichiers de configuration terminés.
  6. Vérifiez que votre cluster d'administrateur est en cours d'exécution.
    Utilisez kubectl pour afficher les nœuds de votre cluster.

À la fin de cette procédure, vous disposerez d'un cluster d'administrateur en cours d'exécution que vous pourrez utiliser pour créer et gérer des clusters d'utilisateur.

Avant de commencer

  • Assurez-vous d'avoir créé un poste de travail administrateur.

  • Consultez le document de planification des adresses IP. Assurez-vous que vous disposez de suffisamment d'adresses IP et examinez à nouveau la manière dont vous souhaitez que les nœuds de votre cluster obtiennent leurs adresses IP : DHCP ou statique. Si vous décidez d'utiliser des adresses IP statiques, vous devez renseigner un fichier de bloc d'adresses IP contenant les adresses choisies.

  • Consultez la présentation de l'équilibrage de charge et examinez votre décision concernant le type d'équilibreur de charge que vous souhaitez utiliser. Pour certains équilibreurs de charge, vous devez configurer l'équilibreur de charge avant de créer votre cluster d'administrateur.

  • Consultez la section privateRegistry et décidez si vous souhaitez utiliser un registre public ou privé pour les composants des clusters Anthos sur VMware.

  • Examinez le champ osImageType et choisissez le type de système d'exploitation à exécuter sur vos nœuds de cluster d'administrateur.

1. Se connecter au poste de travail administrateur

Suivez les instructions pour obtenir une connexion SSH sur votre poste de travail d'administrateur. Le poste de travail d'administrateur dispose des outils dont vous avez besoin pour créer votre cluster d'administrateur. Le compte de service d'accès au composant est également activé sur le poste de travail d'administrateur.

Effectuez toutes les étapes décrites dans cette rubrique sur votre poste de travail administrateur dans le répertoire d'accueil.

2. Remplir le fichier de configuration

Lorsque gkeadm a créé votre poste de travail administrateur, il a généré un fichier de configuration nommé admin-cluster.yaml. Ce fichier de configuration vous permet de créer votre cluster d'administrateur.

Familiarisez-vous avec le fichier de configuration en analysant le fichier de configuration du cluster d'administrateur. Nous vous recommandons de conserver ce document ouvert dans un nouvel onglet ou dans une autre fenêtre, car vous en aurez besoin pour réaliser les étapes suivantes.

name

Si vous souhaitez spécifier un nom pour votre cluster d'administrateur, renseignez le champ name.

bundlePath

Le bundle est un fichier compressé contenant les composants du cluster. Il est inclus dans le poste de travail d'administrateur. Ce champ est déjà renseigné.

vCenter

La plupart des champs de ce fichier de cette section sont déjà renseignés avec les valeurs que vous avez saisies lors de la création de votre poste de travail administrateur. À l'exception du champ dataDisk que vous devez remplir ici.

network

Décidez comment vous souhaitez que les nœuds de votre cluster obtiennent leurs adresses IP. Vous disposez des options suivantes :

  • Depuis un serveur DHCP que vous avez configuré à l'avance. Définissez network.ipMode.type sur "dhcp".

  • À partir d'une liste d'adresses IP statiques que vous fournissez. Définissez network.ipMode.type sur "static", puis créez un fichier de bloc d'adresses IP qui fournit les adresses IP statiques. Pour obtenir un exemple de fichier de bloc d'adresses IP, consultez la section Exemple de fichiers de configuration renseignés.

Renseignez les autres champs selon les besoins dans la section réseau :

  • Si vous avez décidé d'utiliser des adresses IP statiques pour vos nœuds de cluster, le network.ipMode.ipBlockFilePath et la section network.hostconfig sont obligatoires. La section network.hostconfig contient des informations sur les serveurs NTP, les serveurs DNS et les domaines de recherche DNS utilisés par vos nœuds de cluster.

    Si vous utilisez l'équilibreur de charge Seesaw, la section network.hostconfig est obligatoire, même si vous prévoyez d'utiliser le protocole DHCP pour vos nœuds de cluster.

  • Les champs network.podCIDR et network.serviceCIDR sont préremplis avec des valeurs que vous pouvez laisser inchangées, sauf si elles entrent en conflit avec des adresses déjà utilisées sur votre réseau. Kubernetes utilise ces plages pour attribuer des adresses IP aux pods et aux services de votre cluster.

Que vous utilisiez un serveur DHCP ou que vous spécifiiez une liste d'adresses IP statiques, vous devez disposer de suffisamment d'adresses IP disponibles pour votre cluster d'administrateur. Cela inclut les nœuds du cluster d'administrateur qui exécutent les plans de contrôle de tous les clusters d'utilisateur associés. Pour connaître le nombre d'adresses IP dont vous avez besoin, consultez la section Planifier vos adresses IP.

loadBalancer

Réservez une adresse IP virtuelle pour le serveur d'API Kubernetes de votre cluster d'administration. Réservez une autre adresse IP virtuelle pour le serveur de modules complémentaires. Indiquez vos adresses IP virtuelles comme valeurs pour loadBalancer.vips.controlPlaneVIP et loadBalancer.vips.addonsVIP.

Pour en savoir plus, consultez la page Adresses IP virtuelles dans le sous-réseau du cluster d'administrateur.

Choisissez le type d'équilibrage de charge que vous souhaitez utiliser. Vous disposez des options suivantes :

  • Équilibrage de charge groupé MetalLB. Définissez loadBalancer.kind sur "MetalLB".

  • Équilibrage de charge groupé Seesaw. Définissez loadBalancer.kind sur "Seesaw", puis remplissez la section loadBalancer.seesaw.

  • Équilibrage de charge intégré avec F5 BIG-IP Définissez loadBalancer.kind sur "F5BigIP", puis remplissez la section f5BigIP.

  • Équilibrage de charge manuel. Définissez loadBalancer.kind sur "ManualLB", puis remplissez la section manualLB.

Pour en savoir plus sur les options d'équilibrage de charge, consultez la page Présentation de l'équilibrage de charge.

antiAffinityGroups

Définissez antiAffinityGroups.enabled sur true ou false en fonction de votre préférence.

Utilisez ce champ pour indiquer si vous souhaitez que les clusters Anthos sur VMware créent des règles d'anti-affinité VMware DRS (Distributed Resource Scheduler) pour les nœuds de votre cluster d'administrateur. Ceux-ci sont ainsi répartis sur au moins trois hôtes physiques dans votre centre de données.

adminMaster

Si vous souhaitez spécifier le processeur et la mémoire pour le nœud de plan de contrôle du cluster d'administrateur, remplissez la section adminMaster.

addonNode

Définissez addonNode.autoResize.enabled sur true ou false en fonction de votre préférence.

proxy

Si le réseau qui contiendra vos nœuds de cluster d'administrateur se trouve derrière un serveur proxy, remplissez la section proxy.

privateRegistry

Choisissez où vous souhaitez conserver les images de conteneurs pour les composants Anthos clusters on VMware. Vous disposez des options suivantes :

  • Container Registry

  • Votre propre registre Docker privé.

Si vous souhaitez utiliser votre propre registre privé, remplissez la section privateRegistry.

componentAccessServiceAccountKeyPath

Les clusters Anthos sur VMware utilisent votre compte de service d'accès au composant pour télécharger les composants de cluster à partir de Container Registry. Ce champ contient le chemin d'accès à un fichier de clé JSON pour votre compte de service d'accès au composant.

Ce champ est déjà renseigné.

gkeConnect

Si vous souhaitez enregistrer votre cluster administrateur dans un parc Google Cloud, remplissez la section gkeConnect.

stackdriver

Si vous souhaitez activer Cloud Logging et Cloud Monitoring pour votre cluster, renseignez la section stackdriver.

cloudAuditLogging

Si vous souhaitez intégrer les journaux d'audit du serveur d'API Kubernetes de votre cluster avec les journaux d'audit Cloud, remplissez la section cloudAuditLogging.

clusterBackup

Si vous souhaitez activer la sauvegarde du cluster d'administrateur, définissez clusterBackup.datastore sur le datastore vSphere dans lequel vous souhaitez enregistrer les sauvegardes de cluster.

autoRepair

Si vous souhaitez activer la réparation automatique des nœuds pour votre cluster d'administrateur, définissez autoRepair.enabled sur true.

secretsEncryption

Si vous souhaitez activer le chiffrement permanent des secrets, remplissez la section secretsEncryption.

osImageType

Choisissez le type d'image d'OS que vous souhaitez utiliser pour les nœuds de cluster d'administrateur et renseignez la section osImageType en conséquence.

Exemple de fichiers de configuration préremplis {:#example-configuration-files}

Voici un exemple de fichier de bloc d'adresses IP renseigné et de fichier de configuration de cluster d'administrateur renseigné. La configuration active certaines des fonctionnalités disponibles, mais pas toutes.

vc-01-ipblock.yaml

blocks:
  - netmask: 255.255.252.0
    gateway: 172.16.23.254
    ips:
    - ip: 172.16.20.10
      hostname: admin-host1
    - ip: 172.16.20.11
      hostname: admin-host2
    - ip: 172.16.20.12
      hostname: admin-host3
    - ip: 172.16.20.13
      hostname: admin-host4
    - ip: 172.16.20.14
      hostname: admin-host5
    - ip: 172.16.20.15
      hostname: admin-host6
    - ip: 172.16.20.16
      hostname: admin-host7
    - ip: 172.16.20.17
      hostname: admin-host8

vc-01-admin-cluster.yaml

apiVersion: v1
kind: AdminCluster
name: "gke-admin-01"
bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.11.0-gke.543-full.tgz"
vCenter:
  address: "vc01.example"
  datacenter: "vc-01"
  cluster: "vc01-workloads-1"
  resourcePool: "vc-01-pool-1"
  datastore: "vc01-datastore-1"
  caCertPath: "/usr/local/google/home/me/certs/vc01-cert.pem""
  credentials:
    fileRef:
      path: "credential.yaml"
      entry: "vCenter"
  dataDisk: "vc01-admin-disk.vmdk"
network:
  hostConfig:
    dnsServers:
    - "203.0.113.1"
    - "198.51.100.1"
    ntpServers:
    - "216.239.35.4"
  ipMode:
    type: "static"
    ipBlockFilePath: "vc-01-ipblock.yaml"
  serviceCIDR: "10.96.232.0/24"
  podCIDR: "192.168.0.0/16"
  vCenter:
    networkName: "vc01-net-1"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.20.59"
    addonsVIP: "172.16.20.60"
  kind: "MetalLB"
antiAffinityGroups:
  enabled: true
componentAccessServiceAccountKeyPath: "sa-key.json"
gkeConnect:
  projectID: "my-project-123"
  registerServiceAccountKeyPath: "connect-register-sa-2203040617.json"
stackdriver:
  projectID: "my-project-123"
  clusterLocation: "us-central1"
  enableVPC: false
  serviceAccountKeyPath: "log-mon-sa-2203040617.json"
  disableVsphereResourceMetrics: false
clusterBackup:
  datastore: "vc-01-datastore-bu"
autoRepair:
  enabled: true
osImageType: "ubuntu_containerd"

Valider votre fichier de configuration

Après avoir rempli le fichier de configuration du cluster d'administrateur, exécutez gkectl check-config pour vérifier que le fichier est valide :

gkectl check-config --config ADMIN_CLUSTER_CONFIG

Remplacez ADMIN_CLUSTER_CONFIG par le chemin d'accès de votre fichier de configuration de cluster d'administrateur.

Si la commande renvoie des messages d'échec, corrigez les problèmes et validez à nouveau le fichier.

Si vous souhaitez ignorer les validations les plus longues, transmettez l'option --fast. Pour ignorer des validations individuelles, utilisez les options --skip-validation-xxx. Pour en savoir plus sur la commande check-config, consultez la page Exécuter des vérifications préliminaires.

3. Obtenir des images de l'OS

Exécutez gkectl prepare pour initialiser votre environnement vSphere :

gkectl prepare --config ADMIN_CLUSTER_CONFIG

La commande gkectl prepare exécute les tâches préparatoires suivantes :

  • Importe les images d'OS vers vSphere et les marque comme modèles de VM.

  • Transfère les images de conteneurs vers votre registre, si vous utilisez un registre Docker privé.

  • Valide, éventuellement, des attestations de version des images de conteneur, vérifiant ainsi que les images ont été conçues et signées par Google, et sont prêtes pour le déploiement.

4. Créer un équilibreur de charge Seesaw (facultatif)

Rappelez-vous que vous disposez de plusieurs options d'équilibrage de charge pour votre cluster d'administrateur : Metal LB, Seesaw, F5 BIG-IP ou manuel.

Si vous avez choisi d'utiliser l'équilibreur de charge Seesaw, suivez la procédure dans cette section. Sinon, vous pouvez ignorer cette section.

Créez et configurez la VM pour votre équilibreur de charge Seesaw :

gkectl create loadbalancer --config ADMIN_CLUSTER_CONFIG

5. Créer le cluster d'administrateur

Créez le cluster d'administrateur :

gkectl create admin --config ADMIN_CLUSTER_CONFIG

Reprendre la création du cluster d'administrateur après un échec

Si la création du cluster d'administrateur échoue ou est annulée, vous pouvez exécuter à nouveau la commande create :

gkectl create admin --config ADMIN_CLUSTER_CONFIG

Localiser le fichier kubeconfig du cluster d'administrateur

La commande gkectl create admin crée un fichier kubeconfig nommé kubeconfig dans le répertoire actuel. Vous aurez besoin de ce fichier kubeconfig ultérieurement pour interagir avec votre cluster d'administrateur.

Si vous le souhaitez, vous pouvez modifier le nom et l'emplacement de votre fichier kubeconfig.

Gérer le fichier checkpoint.yaml

Lorsque vous avez exécuté la commande gkectl create admin pour créer le cluster d'administrateur, elle a créé un fichier de point de contrôle dans le même dossier de datastore que le disque de données du cluster d'administrateur. Par défaut, ce fichier est nommé DATA_DISK_NAME‑checkpoint.yaml. Si la longueur de DATA_DISK_NAME est supérieure ou égale à 245 caractères, le nom est DATA_DISK_NAME.yaml en raison de la limite de longueur des noms de fichier vSphere.

Ce fichier contient l'état et les identifiants du cluster d'administrateur, et il est utilisé pour les mises à niveau ultérieures. Ne supprimez pas ce fichier, sauf si vous suivez la procédure de suppression d'un cluster d'administrateur.

Si vous avez activé le chiffrement de VM dans votre instance de vCenter Server, vous devez disposer du droit Opérations de chiffrement accès direct avant de créer ou de mettre à niveau votre cluster administrateur. Sinon, le point de contrôle ne sera pas importé. Si vous ne pouvez pas obtenir ce privilège, vous pouvez désactiver l'importation du fichier de point de contrôle à l'aide de l'indicateur masqué --disable-checkpoint lorsque vous exécutez une commande appropriée.

Le fichier checkpoint.yaml est automatiquement mis à jour lorsque vous exécutez la commande gkectl upgrade admin ou lorsque vous exécutez une commande gkectl update qui affecte le cluster d'administrateur.

6. Vérifier que votre cluster d'administrateur est en cours d'exécution

Vérifiez que votre cluster d'administrateur est en cours d'exécution :

kubectl get nodes --kubeconfig ADMIN_CLUSTER_KUBECONFIG

Remplacez ADMIN_CLUSTER_KUBECONFIG par le chemin d'accès du fichier kubeconfig de votre cluster d'administrateur.

Le résultat affiche les nœuds du cluster d'administrateur. Exemple :

gke-admin-master-hdn4z            Ready    control-plane,master ...
gke-admin-node-7f46cc8c47-g7w2c   Ready ...
gke-admin-node-7f46cc8c47-kwlrs   Ready ...

Dépannage

Consultez la section Dépanner la création et la mise à niveau du cluster.

Étapes suivantes

Créer un cluster d'utilisateur