Créer un cluster d'administrateur

Cette page explique comment créer un cluster d'administrateur pour Google Distributed Cloud. Le cluster d'administrateur gère les clusters d'utilisateur qui exécutent vos charges de travail. Si vous souhaitez utiliser des domaines de topologie, consultez la section Créer un cluster d'administrateur à utiliser avec des domaines de topologie.

Cette page s'adresse aux administrateurs, aux architectes et aux opérateurs qui configurent, surveillent et gèrent l'infrastructure technologique. Pour en savoir plus sur les rôles courants et les exemples de tâches que nous citons dans le contenu Google Cloud , consultez la section Rôles utilisateur et tâches courantes de l'utilisateur dans GKE Enterprise.

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

Avant de commencer

  • Assurez-vous d'avoir configuré votre poste de travail administrateur et de pouvoir vous y connecter, comme décrit dans la section Créer un poste de travail administrateur.

  • Assurez-vous que les fichiers de clé JSON des comptes de service se trouvent sur votre poste de travail administrateur.

  • Consultez le document de planification des adresses IP. Assurez-vous de disposer de suffisamment d'adresses IP disponibles pour les trois nœuds de plan de contrôle et une adresse IP virtuelle de plan de contrôle. Si vous prévoyez de créer des clusters d'utilisateur kubeception, vous devez disposer de suffisamment d'adresses IP disponibles pour les nœuds de plan de contrôle de ces clusters d'utilisateur.

  • 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 les équilibreurs de charge manuels, vous devez configurer l'équilibreur de charge avant de créer votre cluster d'administrateur.

  • Si vous utilisez gkectl pour créer le cluster d'administrateur, décidez si vous souhaitez utiliser un registre public ou privé pour les composants Google Distributed Cloud. Pour en savoir plus sur l'utilisation d'un registre Docker privé, consultez privateRegistry. Ni Terraform ni la console Google Cloud ne sont compatibles avec l'utilisation d'un registre Docker privé pour les composants système.

  • Choisissez le type de système d'exploitation à exécuter sur vos nœuds de cluster d'administrateur.

  • Si votre organisation exige que le trafic sortant passe par un serveur proxy, veillez à ajouter à la liste d'autorisation les API requises et l'adresse de l'Artifact Registry.

  • Dans les versions 1.29 et ultérieures, les vérifications préliminaires côté serveur sont activées par défaut. Les vérifications préliminaires côté serveur nécessitent des règles de pare-feu supplémentaires. Dans la section Règles de pare-feu pour les clusters d'administrateur, recherchez "Vérifications préaliminaires" et assurez-vous que toutes les règles de pare-feu requises sont configurées. Les vérifications préliminaires côté serveur sont exécutées sur le cluster d'amorçage au lieu d'être exécutées localement sur le poste de travail de l'administrateur.

Créer un cluster d'administrateur avec l'outil de votre choix

Cette section explique comment créer un cluster d'administrateur à l'aide de gkectl, de Terraform et de la console Google Cloud . Pour en savoir plus sur le choix d'un outil et les limites de certains outils, consultez la section Choisir un outil pour gérer le cycle de vie du cluster.

gkectl

Par défaut, dans la version 1.32 et les versions ultérieures, les nouveaux clusters créés à l'aide de gkectl sont créés avec le cluster avancé activé. Veillez à consulter les différences lors de l'exécution de clusters avancés. Si vous ne souhaitez pas activer le cluster avancé, vous devez définir enableAdvancedCluster sur false dans votre fichier de configuration.

Présentation de la procédure

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

  1. 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.
  2. 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.
  3. 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. Lorsque Google Distributed Cloud crée un cluster d'administrateur, il déploie un cluster Kubernetes in Docker (kind) pour héberger temporairement les contrôleurs Kubernetes nécessaires à la création du cluster d'administrateur. Ce cluster temporaire est appelé cluster d'amorçage. Les clusters d'utilisateur sont créés et mis à niveau par leur administrateur de gestion sans utiliser de cluster d'amorçage.
  4. 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.

Si vous utilisez VPC Service Controls, des erreurs peuvent s'afficher lorsque vous exécutez certaines commandes gkectl, telles que "Validation Category: GCP - [UNKNOWN] GCP service: [Stackdriver] could not get GCP services". Pour éviter ces erreurs, ajoutez le paramètre --skip-validation-gcp à vos commandes.

Remplir le fichier de configuration

  • Assurez-vous que votre poste de travail administrateur dispose de la version requise de gkectl. En règle générale, vous utilisez la même version de gkectl que celle qui sera utilisée lors de la création du cluster. Vous spécifiez la version du cluster dans le champ gkeOnPremVersion du fichier de configuration du cluster. Les règles de version suivantes sont appliquées lors de la création du cluster:

    • La version mineure de gkectl ne peut pas être inférieure à la version mineure du cluster. Par exemple, la création d'un cluster 1.30 à l'aide de gkectl version 1.29 n'est pas autorisée. Les versions de correctif n'ont pas d'importance. Par exemple, vous pouvez utiliser la version gkectl 1.29.0-gke.1456 pour créer un cluster avec une version de correctif supérieure, telle que 1.29.1000-gke.94.

    • La version mineure gkectl ne peut pas être supérieure de plus de deux versions mineures à la version du cluster. Par exemple, si vous créez un cluster 1.28, la version gkectl peut être 1.29 ou 1.30. Toutefois, vous ne pouvez pas utiliser la version 1.31 de gkectl, car elle est trois versions mineures plus récente que la version du cluster.

    Si nécessaire, consultez Télécharger gkectl pour obtenir une version compatible de gkectl.

Si vous avez utilisé gkeadm pour créer votre poste de travail administrateur, il a généré un fichier de configuration nommé admin-cluster.yaml.

Si vous n'avez pas utilisé gkeadm pour créer votre poste de travail administrateur, générez admin-cluster.yaml en exécutant la commande suivante sur votre poste de travail administrateur:

gkectl create-config admin

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 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.

enableAdvancedCluster

Si vous souhaitez activer la fonctionnalité de cluster avancé en preview, définissez enableAdvancedCluster sur true.

Notez les limites suivantes avec l'aperçu avancé du cluster:

  • Vous pouvez activer le cluster avancé au moment de la création du cluster uniquement pour les nouveaux clusters 1.31.
  • Une fois le cluster avancé activé, vous ne pourrez plus le mettre à niveau vers la version 1.32. N'activez le cluster avancé que dans un environnement de test.

network

Remplissez les sections network.controlPlaneIPBlock et network.hostConfig. Définissez également adminMaster.replicas sur 3.

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.

Remplissez les autres champs de la section "network" du fichier de configuration selon les besoins.

loadBalancer

Réservez une adresse IP virtuelle pour le serveur d'API Kubernetes de votre cluster d'administration. Indiquez votre adresse IP virtuelle comme valeur pour loadBalancer.vips.controlPlaneVIP.

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 manuel. Définissez loadBalancer.kind sur "ManualLB", puis supprimez 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 Google Distributed Cloud 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 les nœuds de plan de contrôle du cluster d'administrateur, remplissez les champs cpus et memoryMB dans la section adminMaster.

Les clusters d'administrateur doivent comporter trois nœuds de plan de contrôle. Définissez le champ replicas de la section adminMaster sur 3.

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

Décidez où vous souhaitez conserver les images de conteneur pour les composants Google Distributed Cloud. Vous disposez des options suivantes :

  • Artifact Registry

  • Votre propre registre Docker privé.

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

componentAccessServiceAccountKeyPath

Google Distributed Cloud utilise votre compte de service d'accès au composant pour télécharger les composants de cluster à partir d'Artifact 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

Enregistrez votre cluster administrateur dans un Google Cloud parc en remplissant la section gkeConnect. Si vous incluez les sections stackdriver et cloudAuditLogging dans le fichier de configuration, l'ID dans gkeConnect.projectID 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.

Dans les versions 1.28 et ultérieures, vous pouvez éventuellement spécifier une région dans laquelle les services Fleet et Connect s'exécutent dans gkeConnect.location. Si vous n'incluez pas ce champ, le cluster utilise les instances globales de ces services.

Si vous incluez gkeConnect.location, 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.

gkeOnPremAPI

Si l'API GKE On-Prem est activée dans votre projetGoogle Cloud , tous les clusters du projet sont automatiquement enregistrés dans l'API GKE On-Prem dans la région configurée dans stackdriver.clusterLocation. La région gkeOnPremAPI.location doit être identique à celle spécifiée dans cloudAuditLogging.clusterLocation, gkeConnect.location et stackdriver.clusterLocation. Si les régions ne sont pas identiques, la création du cluster échoue.

  • Si vous souhaitez enregistrer tous les clusters du projet dans l'API GKE On-Prem, veillez à suivre les étapes de 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 de service de l'API GKE On-Prem) dans le projet. Pour obtenir des instructions, consultez la section Désactiver des services.

stackdriver

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

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

Notez les exigences suivantes :

  • Si vous activez le cluster avancé, vous devez spécifier le même chemin d'accès dans cloudAuditLogging.serviceAccountKeyPath et stackdriver.serviceAccountKeyPath.

  • L'ID dans stackdriver.projectID doit être identique à celui dans gkeConnect.projectID et cloudAuditLogging.projectID.

  • La région Google Cloud définie dans stackdriver.clusterLocation doit être identique à celle définie dans cloudAuditLogging.clusterLocation et gkeConnect.location. En outre, si gkeOnPremAPI.enabled est défini sur true, la même région doit être définie dans gkeOnPremAPI.location.

Si les ID de projet et les régions ne sont pas identiques, la création du cluster échoue.

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.

Notez les exigences suivantes :

  • Si vous activez le cluster avancé, vous devez spécifier le même chemin d'accès dans cloudAuditLogging.serviceAccountKeyPath et stackdriver.serviceAccountKeyPath.

  • L'ID dans cloudAuditLogging.projectID doit être identique à celui dans gkeConnect.projectID et stackdriver.projectID.

  • La région Google Cloud définie dans cloudAuditLogging.clusterLocation doit être la même que celle définie dans stackdriver.clusterLocation et gkeConnect.location (si le champ est inclus dans votre fichier de configuration). En outre, si gkeOnPremAPI.enabled est défini sur true, la même région doit être définie dans gkeOnPremAPI.location.

Si les ID de projet et les régions ne sont pas identiques, la création du cluster échoue.

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.

Si vous activez le cluster avancé, supprimez cette section. La sauvegarde du cluster d'administrateur sur un datastore vSphere n'est pas prise en charge.

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.

Si vous activez le cluster avancé, définissez secretsEncryption.enabled sur false. Le chiffrement des secrets toujours activés n'est pas pris en charge.

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.

Si vous activez le cluster avancé, définissez osImageType sur ubuntu_cgroupv2 ou ubuntu_containerd.

Exemple de fichiers de configuration préremplis

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

vc-01-admin-cluster.yaml

apiVersion: v1
kind: AdminCluster
name: "gke-admin-01"
bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.28.0-gke.1-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"
network:
  hostConfig:
    dnsServers:
    - "203.0.113.1"
    - "198.51.100.1"
    ntpServers:
    - "216.239.35.4"
  serviceCIDR: "10.96.232.0/24"
  podCIDR: "192.168.0.0/16"
  vCenter:
    networkName: "vc01-net-1"
  controlPlaneIPBlock:
    netmask: "255.255.248.0"
    gateway: "21.0.143.254"
    ips:
    - ip: "21.0.140.226"
      hostname: "admin-cp-vm-1"
    - ip: "21.0.141.48"
      hostname: "admin-cp-vm-2"
    - ip: "21.0.141.65"
      hostname: "admin-cp-vm-3"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.20.59"
  kind: "MetalLB"
antiAffinityGroups:
  enabled: true
adminMaster:
  cpus: 4
  memoryMB: 16384
  replicas: 3
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.

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.

Créez le cluster d'administrateur :

Créez le cluster d'administrateur :

gkectl create admin --config ADMIN_CLUSTER_CONFIG

Si vous utilisez VPC Service Controls, des erreurs peuvent s'afficher lorsque vous exécutez certaines commandes gkectl, telles que "Validation Category: GCP - [UNKNOWN] GCP service: [Stackdriver] could not get GCP services". Pour éviter ces erreurs, ajoutez le paramètre --skip-validation-gcp à vos commandes.

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.

Le fichier kubeconfig contient le nom de votre cluster d'administrateur. Pour afficher le nom du cluster, vous pouvez exécuter la commande suivante:

kubectl config get-clusters --kubeconfig ADMIN_CLUSTER_KUBECONFIG

Le résultat affiche le nom du cluster. Exemple :

NAME
gke-admin-tqk8x

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

Gérer le fichier checkpoint.yaml

Cette section ne s'applique qu'aux clusters d'administrateur standards. Le fichier checkpoint.yaml n'est pas utilisé pour créer des clusters d'administrateur HA.

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 d'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.

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 :

admin-cp-vm-1   Ready    control-plane,master   ...
admin-cp-vm-2   Ready    control-plane,master   ...
admin-cp-vm-3   Ready    control-plane,master   ...

Sauvegarder des fichiers

Nous vous recommandons de sauvegarder le fichier kubeconfig de votre cluster d'administrateur. Autrement dit, copiez le fichier kubeconfig de votre poste de travail administrateur vers un autre emplacement. Ainsi, si vous perdez l'accès au poste de travail administrateur ou si le fichier kubeconfig de votre poste de travail administrateur est supprimé par erreur, vous avez toujours accès au cluster d'administrateur.

Nous vous recommandons également de sauvegarder la clé SSH privée de votre cluster d'administrateur. Si vous perdez l'accès au cluster d'administrateur, vous pouvez toujours utiliser SSH pour vous connecter aux nœuds du cluster d'administrateur. Cela vous permettra de résoudre et d'examiner les problèmes de connectivité au cluster d'administrateur.

Extrayez la clé SSH du cluster d'administrateur dans un fichier nommé admin-cluster-ssh-key :

kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get secrets -n kube-system sshkeys \
    -o jsonpath='{.data.vsphere_tmp}' | base64 -d > admin-cluster-ssh-key

Vous pouvez désormais sauvegarder admin-cluster-ssh-key à un autre emplacement de votre choix.

Stratégies RBAC

Lorsque vous remplissez la section gkeConnect dans le fichier de configuration de votre cluster d'administrateur, le cluster est enregistré dans votre parc lors de sa création ou de sa mise à jour. Pour activer la fonctionnalité de gestion du parc, Google Cloud déploie l'agent Connect et crée un compte de service Google qui représente le projet auprès duquel le cluster est enregistré. L'agent Connect établit une connexion avec le compte de service pour gérer les requêtes adressées au serveur d'API Kubernetes du cluster. Vous pouvez ainsi accéder aux fonctionnalités de gestion des clusters et des charges de travail dans Google Cloud, y compris à la consoleGoogle Cloud , qui vous permet d'interagir avec votre cluster.

Le serveur d'API Kubernetes du cluster d'administrateur doit être en mesure d'autoriser les requêtes de l'agent Connect. Pour ce faire, les stratégies de contrôle d'accès basé sur les rôles (RBAC) suivantes sont configurées sur le compte de service :

  • Une règle d'emprunt d'identité qui autorise l'agent Connect à envoyer des requêtes au serveur d'API Kubernetes au nom du compte de service.

  • Une stratégie d'autorisation qui spécifie les opérations autorisées sur d'autres ressources Kubernetes.

Le compte de service et les stratégies RBAC sont nécessaires pour gérer le cycle de vie de vos clusters d'utilisateur dans la console Google Cloud .

Terraform

Présentation de la procédure

Avant de créer le cluster d'administrateur, vous devez exécuter la commande gkectl register bootstrap sur votre poste de travail administrateur. Cette commande déploie un cluster Kubernetes dans Docker (kind) sur la station de travail administrateur. Ce cluster d'amorçage héberge les contrôleurs Kubernetes nécessaires à la création du cluster d'administrateur. Lorsque vous créez le cluster d'administrateur, les contrôleurs du cluster d'amorçage provisionnent des nœuds, exécutent des vérifications préliminaires et enregistrent le cluster d'administrateur dans le parc. Le cluster d'amorçage est automatiquement supprimé une fois le cluster d'administration créé.

Voici les étapes générales à suivre pour créer un cluster d'administration à l'aide de Terraform:

  1. Remplissez votre fichier de configuration.
    Utilisez la ressource google_gkeonprem_vmware_admin_cluster et l'exemple suivant pour créer le fichier de configuration main.tf.
  2. Créez un cluster bootstrap.
    Exécutez gkectl register bootstrap pour créer le cluster d'amorçage. Lorsque la commande a terminé de créer le cluster d'amorçage, la sortie vous indique de terminer la configuration du cluster d'administrateur. Le processus continue de s'exécuter jusqu'à ce que le cluster d'administration soit créé.
  3. Créez un cluster d'administrateur.
    Dans une autre fenêtre de terminal ou sur un autre ordinateur ayant accès à l'API GKE On-Prem, exécutez des commandes terraform pour créer un cluster d'administrateur comme spécifié dans votre fichier de configuration main.tf terminé.

Remplir le fichier de configuration

L'exemple suivant montre comment créer un cluster d'administrateur à haute disponibilité (HA) avec trois nœuds de plan de contrôle avec MetalLB. Dans la version 1.28 et les versions ultérieures, les nouveaux clusters d'administrateur doivent être disponibilité élevée. Cette exigence impose de définir control_plane_node.replicas sur 3. Pour en savoir plus et obtenir d'autres exemples, consultez la documentation de référence de google_gkeonprem_vmware_admin_cluster.

Renseignez les variables d'espace réservé dans l'exemple suivant, puis copiez-collez-le dans main.tf. Si vous avez utilisé gkeadm pour créer votre poste de travail administrateur, ouvrez le fichier de configuration de votre poste de travail administrateur afin de pouvoir copier les valeurs de la section vCenter dans les variables d'espace réservé correspondantes.

resource "google_gkeonprem_vmware_admin_cluster" "admin-cluster-metallb" {
  provider = google-beta
  name = "ADMIN_CLUSTER_NAME"
  project = "PROJECT_ID"
  location = "REGION"
  description = "DESCRIPTION"
  bootstrap_cluster_membership = "projects/PROJECT_ID/locations/REGION/memberships/bootstrap-ADMIN_CLUSTER_NAME"
  on_prem_version = "VERSION"
  image_type = "IMAGE_TYPE"
  vcenter {
    address = "VCENTER_ADDRESS"
    datacenter = "DATA_CENTER"
    cluster = "VCENTER_CLUSTER"
    resource_pool = "RESOURCE_POOL"
    datastore = "DATASTORE"
    ca_cert_data = "CA_CERT_DATA"
  }
  network_config {
    service_address_cidr_blocks = ["10.96.232.0/24"]
    pod_address_cidr_blocks = ["192.168.0.0/16"]
    vcenter_network = "NETWORK"
    dhcp_ip_config {
      enabled = true
    }
    host_config {
      dns_servers = ["DNS_SERVERS"]
      ntp_servers = ["NTP_SERVERS"]
    }
    ha_control_plane_config {
      control_plane_ip_block {
        gateway = "GATEWAY"
        netmask = "NETMASK"
        ips {
          hostname = "CONTROL_PLANE_HOST_1"
          ip       = "CONTROL_PLANE_NODE_IP_1"
        }
        ips {
          hostname = "CONTROL_PLANE_HOST_2"
          ip       = "CONTROL_PLANE_NODE_IP_2"
        }
        ips {
          hostname = "CONTROL_PLANE_HOST_3"
          ip       = "CONTROL_PLANE_NODE_IP_3"
        }
      }
    }
  }
  control_plane_node {
     cpus = NUM_CPUS
     memory = MEMORY
     replicas = 3
  }
  load_balancer {
    vip_config {
      control_plane_vip = "CONTROL_PLANE_VIP"
    }
    metal_lb_config {
      enabled = true
    }
  }
}

Remplacez les éléments suivants :

  • ADMIN_CLUSTER_NAME: nom du cluster d'administrateur. Le nom ne doit pas comporter plus de 20 caractères.

  • PROJECT_ID: ID du Google Cloud projet.

  • REGION: région Google Cloud dans laquelle l'API GKE On-Prem (gkeonprem.googleapis.com), le service Fleet (gkehub.googleapis.com) et le service Connect (gkeconnect.googleapis.com) s'exécutent. Spécifiez us-west1 ou une autre région compatible.

    Le champ location correspond à l'indicateur --location de la commande gkectl register bootstrap.

  • DESCRIPTION: description du cluster d'administrateur.

  • VERSION: version de Google Distributed Cloud pour le cluster. La création d'un cluster à l'aide de Terraform n'est compatible qu'avec les versions 1.28 et ultérieures. La version que vous spécifiez ici doit correspondre à celle du bundle que vous spécifiez dans l'option --bundle-path de la commande gkectl register bootstrap. Pour obtenir la liste des versions, consultez la section Versions de Google Distributed Cloud.

  • IMAGE_TYPE: type d'image de système d'exploitation à exécuter sur vos nœuds de cluster d'administrateur. Spécifiez l'une des valeurs suivantes: "ubuntu_containerd", "cos", "ubuntu_cgv2" ou "cos_cgv2".

  • VCENTER_ADDRESS: adresse du serveur vCenter.

    • Fichier de configuration du poste de travail administrateur: utilisez la valeur du champ vCenter.credentials.address.

    • Le champ vcenter.address correspond à l'indicateur --vcenter-address dans la commande gkectl register bootstrap.

  • DATA_CENTER: nom de votre centre de données vCenter.

    • Fichier de configuration du poste de travail administrateur: utilisez la valeur du champ vCenter.datacenter.

    • Le champ vcenter.datacenter correspond à l'indicateur --vcenter-datacenter de la commande gkectl register bootstrap.

  • VCENTER_CLUSTER: nom de votre cluster vCenter.

    • Fichier de configuration du poste de travail administrateur: utilisez la valeur du champ vCenter.cluster.

    • Le champ vcenter.cluster correspond à l'indicateur --vcenter-cluster dans la commande gkectl register bootstrap.

  • RESOURCE_POOL: nom ou chemin d'accès de votre pool de ressources vCenter.

    • Fichier de configuration du poste de travail administrateur: utilisez la valeur du champ vCenter.resourcePool.

    • Le champ vcenter.resource_pool correspond à l'indicateur --vcenter-resource-pool de la commande gkectl register bootstrap.

  • DATASTORE: nom de votre datastore vCenter. La valeur que vous spécifiez doit être un nom, et non un chemin d'accès. Si vous devez saisir un chemin d'accès, ajoutez le champ suivant: folder = "FOLDER"

    • Fichier de configuration du poste de travail administrateur: utilisez la valeur du champ vCenter.datastore.

    • Le champ vcenter.datastore correspond à l'indicateur --vcenter-datastore de la commande gkectl register bootstrap.

    Si vous souhaitez utiliser une règle de stockage de VM pour les nœuds du cluster, supprimez le champ vcenter.datastore et ajoutez vcenter.storage_policy_name à la place. Ajoutez également l'option --vcenter-storage-policy à la commande gkectl register bootstrap. Vous devez spécifier une valeur pour vcenter.datastore ou vcenter.storage_policy_name, mais pas les deux.

  • FOLDER: nom du dossier vCenter où se trouvent les VM de votre cluster. Si vous n'utilisez pas de dossier, supprimez ce champ.

    • Fichier de configuration du poste de travail administrateur: utilisez la valeur du champ vCenter.folder.

    • Le champ vcenter.folder correspond à l'indicateur --vcenter-folder dans la commande gkectl register bootstrap.

  • CA_CERT_DATA: saisissez le certificat CA vCenter au format PEM. Pour obtenir les données du certificat CA:

    1. Exécutez la commande suivante :

      cat CA_CERT_PATH_LOCAL |  tr '\n' '\\n'
      

      Remplacez CA_CERT_PATH_LOCAL par le chemin d'accès au certificat CA racine de votre serveur vCenter. Si vous avez utilisé gkeadm pour créer votre poste de travail administrateur, vous pouvez utiliser la valeur du champ caCertPath dans le fichier de configuration du poste de travail administrateur, qui correspond au chemin d'accès sur votre ordinateur local. gkeadm a copié le fichier de certificat CA sur votre poste de travail administrateur. Vous devez spécifier le chemin d'accès du poste de travail administrateur dans l'indicateur --vcenter-ca-cert-path de la commande gkectl register bootstrap.

    2. Copiez le certificat généré par la commande précédente et collez-le dans un éditeur de texte. Remplace toutes les occurrences du caractère barre oblique inverse (\) par un caractère de nouvelle ligne (\n).

    3. Copiez le certificat modifié et collez-le dans la variable d'espace réservé CA_CERT_DATA.

  • NETWORK: saisissez le nom de votre réseau vCenter.

    • Fichier de configuration du poste de travail administrateur: utilisez la valeur du champ vCenter.network.

    • Le champ network_config.vcenter_network correspond à l'indicateur --vcenter-network de la commande gkectl register bootstrap.

  • GATEWAY: adresse IP de la passerelle par défaut du sous-réseau contenant vos nœuds de cluster de plan de contrôle.

  • NETMASK: masque de réseau du sous-réseau contenant vos nœuds de cluster de plan de contrôle.

  • DNS_SERVERS: adresse IP du serveur DNS.

  • NTP_SERVERS: adresse IP du serveur de temps (NTP).

  • Saisissez les adresses IP et, éventuellement, le nom d'hôte des trois nœuds du plan de contrôle dans la section control_plane_ip_block.ips. Si vous ne saisissez pas de nom d'hôte, supprimez les champs hostname de la configuration.

  • NUM_CPUS : nombre de vCPU pour chaque nœud du plan de contrôle dans le cluster d'administrateur. Doit être d'au moins quatre.

  • MEMORY: nombre de mebioctets de mémoire pour chaque nœud de plan de contrôle du cluster d'administration. Doit être d'au moins 8 192, mais nous vous recommandons de choisir 16 384.

  • CONTROL_PLANE_VIP: adresse IP que vous avez choisie de configurer sur l'équilibreur de charge pour le serveur d'API Kubernetes du cluster d'administrateur.

Vérifier le fichier de configuration et le plan

Dans le répertoire où se trouve main.tf, exécutez les commandes suivantes:

  1. Initialisez Terraform :

    terraform init
    

    Terraform installe les bibliothèques nécessaires, telles que le fournisseur Google Cloud . Corrigez les erreurs dans maint.tf si nécessaire.

  2. Créez le plan Terraform:

    terraform plan -out tfplan
    

    Examinez la configuration et apportez les modifications nécessaires.

Avant d'appliquer le plan, vous devez d'abord créer le cluster de démarrage comme décrit dans la section suivante.

Créer le cluster d'amorçage

Lorsque vous exécutez la commande gkectl register bootstrap, vous êtes invité à saisir le nom d'utilisateur et le mot de passe du compte vCenter. Assurez-vous d'avoir les identifiants à disposition. Si vous avez utilisé gkeadm pour créer le poste de travail administrateur, le nom d'utilisateur et le mot de passe se trouvent dans le fichier credential.yaml.

  1. Connectez-vous à votre poste de travail administrateur à l'aide de SSH.

  2. Authentifiez-vous avec Google Cloud CLI :

    gcloud auth login
    
  3. Exécutez la commande suivante pour créer le cluster d'amorçage. De nombreuses valeurs d'indicateur sont identiques à celles des champs main.tf. Notez toutefois que la commande accepte des valeurs supplémentaires que vous devez spécifier dans les variables d'espace réservé fournies.

    gkectl register bootstrap \
        --target-cluster-name=ADMIN_CLUSTER_NAME \
        --project-id=PROJECT_ID \
        --location=REGION \
        --vcenter-address=VCENTER_ADDRESS \
        --vcenter-datacenter=DATA_CENTER \
        --vcenter-cluster=VCENTER_CLUSTER \
        --vcenter-resource-pool=RESOURCE_POOL \
        --vcenter-datastore=DATASTORE \
        --vcenter-network=NETWORK \
        --vcenter-ca-cert-path=CA_CERT_PATH \
        --bundle-path=BUNDLE_PATH \
        --component-access-service-account-key-path=COMPONENT_ACCESS_SA_PATH \
        --register-service-account-key-path=CONNECT_REGISTER_SA_PATH \
        --stackdriver-service-account-key-path=LOG_MON_SA_PATH \
        --cloud-audit-logging-service-account-key-path=CLOUD_AUDIT_SA_PATH
    

    Remplacez les éléments suivants par les chemins d'accès du poste de travail administrateur:

    • CA_CERT_PATH: chemin d'accès au certificat racine de l'autorité de certification pour votre serveur vCenter.
    • BUNDLE_PATH: chemin d'accès au fichier de bundle. Si vous avez utilisé gkeadm pour créer le poste de travail administrateur, le fichier de groupe se trouve dans /var/lib/gke/bundles/. Le nom du fichier dépend de la version de Google Distributed Cloud, par exemple gke-onprem-vsphere-1.31.0-gke.889-full.tgz.
    • COMPONENT_ACCESS_SA_PATH: chemin d'accès au fichier de clé du compte de service d'accès au composant.
    • CONNECT_REGISTER_SA_PATH: chemin d'accès au fichier de clé du compte de service connect-register.
    • LOG_MON_SA_PATH: chemin d'accès au fichier de clé du compte de service de surveillance de la journalisation.
    • CLOUD_AUDIT_SA_PATH: chemin d'accès au compte de service de journalisation d'audit. Si vous n'avez pas créé de compte de service de journalisation d'audit, spécifiez le chemin d'accès au fichier de clé pour le compte de service de journalisation-surveillance.

    Modifiez la commande si nécessaire pour les options suivantes:

    • Si vous avez spécifié un dossier dans main.tf, ajoutez l'indicateur suivant : --vcenter-folder=FOLDER
    • Si vous avez spécifié une règle de stockage de VM dans main.tf, supprimez --vcenter-datastore et ajoutez l'indicateur suivant : --vcenter-storage-policy-name=STORAGE_POLICY_NAME

    Si vous ajoutez un indicateur, veillez à ajouter le caractère barre oblique inversée (\) de continuation de la ligne de commande.

  4. Lorsque vous y êtes invité, saisissez (ou copiez-collez) le nom d'utilisateur vCenter. Le nom d'utilisateur n'est pas affiché à l'écran.

  5. Lorsque vous y êtes invité, saisissez (ou copiez-collez) le mot de passe vCenter. Le mot de passe n'est pas affiché à l'écran.

La commande exécute de nombreuses validations. Une fois que gkectl a créé le cluster d'amorçage, vous obtenez un résultat semblable à celui-ci, qui est tronqué par souci de lisibilité:

Running workstation validations
- Validation Category: Workstation
    - [SUCCESS] Workstation OS
    - [SUCCESS] Workstation Hardware
    - [SUCCESS] Workstation Package
    - [SUCCESS] Workstation NTP
    - [SUCCESS] Workstation Docker
...
All validation results were SUCCESS.
Unpacking GKE on-prem bundle: /var/lib/gke/bundles/gke-onprem-vsphere-1.31.0-gke.889-full.tgz
...
Successfully created and registered the bootstrap cluster
...
Waiting for preflight checks to run or OnPremAdminCluster to be applied...... -

Le processus continue de s'exécuter jusqu'à ce que le cluster d'administrateur soit créé.

Si vous quittez la commande gkectl register bootstrap avant la création du cluster d'administrateur, la création du cluster d'administrateur échoue et vous devez supprimer le cluster de démarrage à l'aide de la commande suivante:

gkectl delete bootstrap \
    --target-cluster-name=ADMIN_CLUSTER_NAME \
    --project-id=PROJECT_ID \
    --location=REGION \
     --register-service-account-key-path=CONNECT_REGISTER_SA_PATH

Créez le cluster d'administrateur :

Appliquez le plan Terraform pour créer le cluster d'administrateur :

terraform apply "tfplan"

La création du cluster d'administrateur prend au moins 15 minutes. Vous pouvez afficher le cluster dans la console Google Cloud sur la page Clusters GKE.

Console

Présentation de la procédure

Avant de créer le cluster d'administrateur, vous devez exécuter la commande gkectl register bootstrap sur votre poste de travail administrateur. Cette commande déploie un cluster Kubernetes dans Docker (kind) sur la station de travail administrateur. Ce cluster d'amorçage héberge les contrôleurs Kubernetes nécessaires à la création du cluster d'administrateur. Lorsque vous créez le cluster d'administrateur, les contrôleurs du cluster d'amorçage provisionnent des nœuds, exécutent des vérifications préliminaires et enregistrent le cluster d'administrateur dans le parc. Le cluster d'amorçage est automatiquement supprimé une fois le cluster d'administration créé.

Voici les étapes générales à suivre pour créer un cluster d'administration à l'aide de la console:

  1. Dans la console, vous saisissez les informations requises par gkectl register bootstrap. La console affiche la commande gkectl register bootstrap avec les informations que vous avez saisies. La commande affichée inclut également des options pour les chemins d'accès que vous devrez spécifier avant d'exécuter la commande.

  2. Sur votre poste de travail administrateur, exécutez gkectl register bootstrap pour créer le cluster d'amorçage. Lorsque la commande a terminé de créer le cluster d'amorçage, la sortie vous indique de terminer la configuration du cluster d'administrateur. Le processus continue de s'exécuter jusqu'à ce que le cluster d'administrateur soit créé.

  3. Vous revenez à la console pour terminer de saisir les informations nécessaires à la création du cluster. Lors de la création du cluster, la commande gkectl register bootstrap affiche des informations sur la progression et écrit des journaux sur votre poste de travail administrateur. Lorsque le cluster d'administrateur est créé, le cluster d'amorçage est automatiquement supprimé.

Commencer à configurer le cluster

  1. Dans la console, accédez à la page Créer un cluster sur VMware.

    Accéder à la page "Créer un cluster sur VMware"

  2. Sélectionnez le Google Cloud projet dans lequel vous souhaitez créer le cluster.

    Lorsque vous créez le cluster d'amorçage dans une section suivante, l'ID de projet sélectionné s'affiche dans la commande gkectl register bootstrap dans l'indicateur --project-id.

  3. Assurez-vous que l'option Créer un cluster d'administrateur est sélectionnée.

  4. Cliquez sur Next: Install bootstrap environment (Étape suivante : Installer l'environnement d'amorçage).

Installer l'environnement d'amorçage

Dans cette section, vous saisissez les informations requises par la commande gkectl register bootstrap. Lorsque vous saisissez des valeurs dans les champs de l'UI, la console les copie dans les indicateurs correspondants de la commande gkectl register bootstrap affichée dans la section Environnement de démarrage à partir de la station de travail administrateur en bas de la page.

Paramètres de base de l'environnement d'amorçage

  1. Saisissez un nom pour le cluster d'administrateur. La console utilise le nom du cluster comme valeur pour l'indicateur --target-cluster-name dans la commande gkectl register bootstrap affichée au bas de la page. Le nom ne doit pas comporter plus de 20 caractères.

  2. Dans le champ Google Cloud Emplacement de l'API, sélectionnez une Google Cloud région dans la liste. Ce paramètre spécifie la région dans laquelle les API et les services suivants s'exécutent:

    • API GKE On-Prem (gkeonprem.googleapis.com)
    • Service de parc (gkehub.googleapis.com)
    • Connecter le service (gkeconnect.googleapis.com)

    Ce paramètre contrôle également la région dans laquelle les éléments suivants sont stockés :

    • Métadonnées du cluster d'utilisateur dont l'API GKE On-Prem a besoin pour gérer le cycle de vie du cluster
    • Données Cloud Logging et Cloud Monitoring des composants système
    • Journal d'audit d'administrateur créé par Cloud Audit Logs

    Le champ Google Cloud API Location correspond à l'indicateur --location dans la commande gkectl register bootstrap.

  3. Dans le champ Version du cluster d'administrateur, saisissez la version à utiliser pour créer le cluster. La version que vous sélectionnez ici doit correspondre à la version du bundle que vous spécifiez dans l'indicateur --bundle-path de la commande gkectl register bootstrap.

Configuration de vCenter

Si vous avez utilisé gkeadm pour créer votre poste de travail administrateur, ouvrez votre fichier de configuration de poste de travail administrateur afin de pouvoir copier les valeurs de la section vCenter dans les champs de la console. Notez que le fichier de configuration du cluster d'administrateur généré contient également ces informations.

La plupart des champs de cette section sont immuables. Consultez la section vCenter de la documentation de référence du fichier de configuration du cluster d'administrateur pour savoir si un champ est modifiable ou immuable.

  1. Dans le champ Address (Adresse), saisissez l'adresse du serveur vCenter.

    • Fichier de configuration du poste de travail administrateur: utilisez la valeur du champ vCenter.credentials.address.

    • Le champ Address (Adresse) correspond à l'indicateur --vcenter-address de la commande gkectl register bootstrap.

  2. Dans le champ Datacenter (Centre de données), saisissez le nom de votre centre de données vCenter.

    • Fichier de configuration du poste de travail administrateur: utilisez la valeur du champ vCenter.datacenter.

    • Le champ Datacenter correspond à l'indicateur --vcenter-datacenter dans la commande gkectl register bootstrap.

  3. Dans le champ Cluster Name (Nom du cluster), saisissez le nom de votre cluster vCenter.

    • Fichier de configuration du poste de travail administrateur: utilisez la valeur du champ vCenter.cluster.

    • Le champ Cluster Name (Nom du cluster) correspond à l'indicateur --vcenter-cluster dans la commande gkectl register bootstrap.

  4. Dans le champ Pool de ressources, saisissez le nom ou le chemin d'accès de votre pool de ressources vCenter.

    • Fichier de configuration du poste de travail administrateur: utilisez la valeur du champ vCenter.resourcePool.

    • Le champ Pool de ressources correspond à l'indicateur --vcenter-resource-pool dans la commande gkectl register bootstrap.

  5. Configurez une option de stockage en saisissant l'une des valeurs suivantes:

    • Champ Datastore (Datastore) : saisissez le nom de votre datastore vCenter. La valeur que vous spécifiez doit être un nom, et non un chemin d'accès. Si vous devez saisir un chemin d'accès, saisissez-le dans le champ Dossier.

      • Fichier de configuration du poste de travail administrateur: utilisez la valeur du champ vCenter.datastore.

      • Le champ Datastore correspond à l'indicateur --vcenter-datastore de la commande gkectl register bootstrap.

    • Champ Nom de la règle de stockage: saisissez le nom de la règle de stockage de VM pour les nœuds du cluster. Pour en savoir plus, consultez la page Configurer une règle de stockage.

      • Fichier de configuration du poste de travail administrateur: utilisez la valeur du champ vCenter.storagePolicyName.

      • Le champ Storage policy name (Nom de la règle de stockage) correspond à l'indicateur --vcenter-storage-policy dans la commande gkectl register bootstrap.

    Vous devez saisir une valeur dans le champ Datastore (Datastore) ou dans le champ Storage Policy Name (Nom de la stratégie de stockage), mais pas les deux.

  6. Vous pouvez éventuellement saisir le nom du dossier vCenter dans le champ Dossier où se trouveront les VM de votre cluster.

    • Fichier de configuration du poste de travail administrateur: utilisez la valeur du champ vCenter.folder.

    • Le champ Dossier correspond à l'indicateur --vcenter-folder dans la commande gkectl register bootstrap.

  7. Dans le champ Network (Réseau), saisissez le nom de votre réseau vCenter.

    • Fichier de configuration du poste de travail administrateur: utilisez la valeur du champ vCenter.network.

    • Le champ Network correspond à l'indicateur --vcenter-network dans la commande gkectl register bootstrap.

  8. Dans le champ Chemin d'accès au certificat CA, saisissez le chemin d'accès au certificat CA racine de votre serveur vCenter.

    • Si vous avez utilisé gkeadm pour créer votre poste de travail administrateur, gkeadm a copié le fichier de certificat de l'autorité de certification que vous aviez localement sur votre poste de travail administrateur.

    • Le champ Chemin d'accès au certificat de l'autorité de certification correspond à --vcenter-ca-cert-path dans la commande gkectl register bootstrap.

Obtenir le certificat CA

Après avoir créé le cluster de démarrage, vous devez fournir le certificat CA vCenter au format PEM dans le champ Données du certificat CA sur la page Principes de base du cluster. Exécutez la commande suivante pour afficher le certificat:

cat CA_CERT_PATH

Remplacez CA_CERT_PATH par le chemin d'accès au certificat de la CA racine de votre serveur vCenter. Si vous exécutez cette commande localement, utilisez le chemin d'accès dans vCenter.caCertPath dans le fichier de configuration de votre poste de travail administrateur.

Copiez l'intégralité du certificat dans un éditeur de texte afin de pouvoir le coller dans le champ Données du certificat d'autorité de certification de la page Principes de base du cluster une fois le cluster de démarrage créé.

Amorcer l'environnement depuis le poste de travail administrateur

Lorsque vous exécutez la commande gkectl register bootstrap, vous êtes invité à saisir le nom d'utilisateur et le mot de passe du compte vCenter. Assurez-vous d'avoir les identifiants à disposition. Si vous avez utilisé gkeadm pour créer le poste de travail administrateur, le nom d'utilisateur et le mot de passe se trouvent dans le fichier credential.yaml.

  1. Faites défiler la page jusqu'à la section Amorcer l'environnement depuis le poste de travail administrateur pour afficher la commande gkectl register bootstrap.

    Laissez cette page ouverte pendant que vous accédez à votre poste de travail administrateur pour créer le cluster d'amorçage.

  2. Copiez et collez la commande gkectl register bootstrap dans un éditeur de texte afin de pouvoir spécifier des valeurs pour les indicateurs suivants:

        ./gkectl register bootstrap \
          ...
          --bundle-path=BUNDLE_PATH \
          ...
          --component-access-service-account-key-path=COMPONENT_ACCESS_SA_PATH \
          --register-service-account-key-path=CONNECT_REGISTER_SA_PATH \
          --stackdriver-service-account-key-path=LOG_MON_SA_PATH \
          --cloud-audit-logging-service-account-key-path=CLOUD_AUDIT_SA_PATH
    

    Remplacez les éléments suivants par les chemins d'accès du poste de travail administrateur:

    • BUNDLE_PATH: chemin d'accès au fichier de bundle. Si vous avez utilisé gkeadm pour créer le poste de travail administrateur, le fichier de groupe se trouve dans /var/lib/gke/bundles/. Le nom du fichier dépend de la version de Google Distributed Cloud, par exemple gke-onprem-vsphere-1.31.0-gke.889-full.tgz.
    • COMPONENT_ACCESS_SA_PATH: chemin d'accès au fichier de clé du compte de service d'accès au composant.
    • CONNECT_REGISTER_SA_PATH: chemin d'accès au fichier de clé du compte de service connect-register.
    • LOG_MON_SA_PATH: chemin d'accès au fichier de clé du compte de service de surveillance de la journalisation.
    • CLOUD_AUDIT_SA_PATH: chemin d'accès au compte de service de journalisation d'audit. Si vous n'avez pas créé de compte de service de journalisation d'audit, spécifiez le chemin d'accès au fichier de clé pour le compte de service de journalisation-surveillance.

    De plus, si vous avez utilisé gkeadm pour créer votre poste de travail administrateur, gkectl a été téléchargé dans le répertoire /usr/bin/. Dans ce cas, supprimez ./ au début de la commande, car gkectl ne se trouve pas dans le répertoire de travail actuel.

  3. Utilisez SSH pour vous connecter à votre poste de travail administrateur.

  4. Copiez la commande et collez-la dans une fenêtre de terminal sur votre station de travail d'administration.

  5. Lorsque vous y êtes invité, saisissez (ou copiez-collez) le nom d'utilisateur vCenter. Le nom d'utilisateur n'est pas affiché à l'écran.

  6. Lorsque vous y êtes invité, saisissez (ou copiez-collez) le mot de passe vCenter. Le mot de passe n'est pas affiché à l'écran.

La commande exécute de nombreuses validations. Une fois que gkectl a créé le cluster d'amorçage, vous obtenez un résultat semblable à celui-ci, qui est tronqué par souci de lisibilité:

Running workstation validations
- Validation Category: Workstation
    - [SUCCESS] Workstation OS
    - [SUCCESS] Workstation Hardware
    - [SUCCESS] Workstation Package
    - [SUCCESS] Workstation NTP
    - [SUCCESS] Workstation Docker
...
All validation results were SUCCESS.
Unpacking GKE on-prem bundle: /var/lib/gke/bundles/gke-onprem-vsphere-1.31.0-gke.889-full.tgz
...
Successfully created and registered the bootstrap cluster
...
Waiting for preflight checks to run or OnPremAdminCluster to be applied...... -

Le processus continue de s'exécuter jusqu'à ce que le cluster d'administrateur soit créé.

Si vous quittez la commande gkectl register bootstrap avant la création du cluster d'administrateur, la création du cluster d'administrateur échoue et vous devez supprimer le cluster de démarrage à l'aide de la commande suivante:

gkectl delete bootstrap \
    --target-cluster-name=ADMIN_CLUSTER_NAME \
    --project-id=PROJECT_ID \
    --location=REGION \
     --register-service-account-key-path=CONNECT_REGISTER_SA_PATH

Terminer de configurer le cluster d'administrateur

Revenez à la console et procédez comme suit:

  1. Sur la page Installer l'environnement de démarrage, cliquez sur Vérifier la connexion.

    Si l'opération réussit, la console affiche Connexion établie.

    La connexion au cluster d'amorçage doit être établie avant de continuer. Si la connexion n'est pas établie, vérifiez les arguments que vous avez spécifiés pour la commande gkectl register bootstrap :

    • Assurez-vous que la valeur de --target-cluster-name correspond au nom du cluster d'administrateur affiché dans la section Principes de base de l'environnement d'amorçage.

    • Assurez-vous que la valeur de --project-id correspond à l'ID du projet que vous avez sélectionné dans la console.

    Si vous devez modifier le nom du cluster d'amorçage, l'ID de projet ou d'autres valeurs d'indicateur, procédez comme suit:

    1. Saisissez Ctrl-C pour quitter gkectl register bootstrap.
    2. Supprimez le cluster d'amorçage:

      gkectl delete bootstrap \
        --target-cluster-name=ADMIN_CLUSTER_NAME \
        --project-id=PROJECT_ID \
        --location=REGION \
        --register-service-account-key-path=CONNECT_REGISTER_SA_PATH
      
    3. Réexécutez la commande gkectl register bootstrap.

  2. Cliquez sur Étape suivante: Principes de base du cluster pour commencer à configurer le cluster d'administrateur.

Paramètres de base du cluster

  1. Dans le champ CA certificate data (Données du certificat CA), copiez et collez l'intégralité du certificat CA vCenter au format PEM, comme décrit précédemment dans la section Obtenir le certificat CA.

  2. Dans la section Autorisation, saisissez les adresses e-mail des utilisateurs auxquels vous souhaitez accorder le rôle clusterrole/view Kubernetes en lecture seule. Notez que votre adresse e-mail est automatiquement ajoutée. Les stratégies de contrôle des accès basé sur les rôles (RBAC) appliquées permettent aux utilisateurs d'exécuter des commandes en lecture seule via la passerelle Connect.

  3. Cliquez sur Next Control Plane (Prochain plan de contrôle).

Plan de contrôle

  1. Examinez les paramètres par défaut dans la section Plan de contrôle et modifiez-les si nécessaire.

  2. Dans la section Adresses IP des nœuds du plan de contrôle, saisissez les adresses IP dans les champs suivants:

    • Passerelle: adresse IP de la passerelle par défaut pour le sous-réseau contenant vos nœuds de cluster.

    • Masque de réseau: masque de réseau du sous-réseau contenant vos nœuds de cluster.

    • Adresses IP: saisissez l'adresse IP et, éventuellement, le nom d'hôte des trois nœuds du plan de contrôle.

  3. Cliquez sur Suivant: Mise en réseau.

Mise en réseau

Dans cette section, vous spécifiez les informations réseau nécessaires pour créer le cluster d'administration.

  1. Dans la section Plages CIDR des services et des pods, acceptez les valeurs par défaut pour les plages d'adresses IP des services et des pods Kubernetes, ou saisissez des plages d'adresses CIDR différentes.

    • CIDR du service: plage la plus petite possible: /24. Plage la plus large possible : /12.

    • CIDR du pod: plage la plus petite possible: /18. Plage la plus étendue possible : /8.

  2. Dans la section Host config (Configuration de l'hôte), spécifiez les serveurs NTP, les serveurs DNS et éventuellement les domaines de recherche DNS utilisés par les VM qui sont vos nœuds de cluster. Une fois le cluster créé, vous ne pouvez plus modifier ces valeurs.

  3. Cliquez sur Étape suivante: Équilibreur de charge.

Équilibreur de charge

Dans cette section, vous sélectionnez le type d'équilibreur de charge à utiliser. Pour en savoir plus, consultez la section Présentation de l'équilibrage de charge.

  1. Dans la liste Type d'équilibreur de charge, sélectionnez un équilibreur de charge:

    • Groupé avec MetalLB: l'équilibreur de charge MetalLB est groupé et nécessite moins de configuration que l'équilibrage de charge manuel. Les composants MetalLB s'exécutent sur vos nœuds de cluster. Vous n'avez donc pas besoin de créer de VM distinctes pour votre équilibreur de charge.

    • Manuel: vous pouvez utiliser n'importe quel équilibreur de charge de votre choix tant que vous le configurez avant de créer le cluster. Tout équilibreur de charge que vous configurez manuellement nécessite de configurer des mappages entre les adresses IP virtuelles, les adresses de nœud et les valeurs nodePort.

  2. Dans le champ Adresse IP virtuelle du plan de contrôle, saisissez l'adresse IP virtuelle à utiliser pour le trafic envoyé au serveur d'API Kubernetes.

  3. Cliquez sur Vérifier et créer.

    La console affiche les messages d'état de vérification des paramètres et de création du cluster dans votre centre de données.

    En cas de problème de configuration, la console affiche un message d'erreur suffisamment clair pour que vous puissiez résoudre le problème de configuration et tenter à nouveau de créer le cluster.

Des informations sur le processus de création du cluster sont affichées sur votre poste de travail administrateur. Si les vérifications préliminaires réussissent, vous obtenez un résultat semblable au suivant :

[2023-03-22 23:12:47+0000] Waiting for cluster kubeconfig to become ready OK
[2023-03-22 23:15:47+0000] Writing kubeconfig file
[2023-03-22 23:15:47+0000] kubeconfig of cluster being created is present at gkectl-workspace/abm-cluster-1/abm-cluster-1-kubeconfig
[2023-03-22 23:15:47+0000] Please restrict access to this file as it contains authentication credentials of your cluster.
[2023-03-22 23:15:47+0000] Waiting for cluster to become ready OK
[2023-03-22 23:20:17+0000] Please run
[2023-03-22 23:20:17+0000] kubectl --kubeconfig gkectl-workspace/abm-cluster-1/abm-cluster-1-kubeconfig get nodes
[2023-03-22 23:20:17+0000] to get cluster nodes status.
[2023-03-22 23:20:17+0000] Waiting for node pools to become ready OK
[2023-03-22 23:20:37+0000] Waiting for metrics to become ready in GCP OK
[2023-03-22 23:25:38+0000] Waiting for cluster API provider to install in the created admin cluster OK
[2023-03-22 23:25:48+0000] Moving admin cluster resources to the created admin cluster
[2023-03-22 23:25:51+0000] Waiting for node update jobs to finish OK
[2023-03-22 23:27:41+0000] Flushing logs... OK
[2023-03-22 23:27:41+0000] Deleting membership... OK
[2023-03-22 23:27:42+0000] Deleting bootstrap cluster.

Se connecter au cluster d'administrateur

La commande gkectl register bootstrap crée un fichier kubeconfig pour le cluster d'administrateur sur votre poste de travail administrateur. Le répertoire où se trouve le fichier kubeconfig et le nom du fichier sont basés sur le nom du cluster d'administrateur, comme suit :

gkectl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig

Vous devez restreindre l'accès à cet kubeconfig, car il contient les identifiants d'authentification du cluster.

Vous pouvez également exécuter des commandes kubectl en lecture seule via la passerelle Connect.

  1. Exécutez la commande suivante sur un ordinateur sur lequel gcloud CLI est installé pour obtenir une entrée kubeconfig pouvant accéder au cluster via la passerelle Connect.

    gcloud container fleet memberships get-credentials ADMIN_CLUSTER_NAME \
        --project=PROJECT_ID
    

    Le résultat ressemble à ce qui suit :

    Starting to build Gateway kubeconfig...
    Current project_id: PROJECT_ID
    A new kubeconfig entry "connectgateway_PROJECT_ID_global_ADMIN_CLUSTER_NAME" has been generated and set as the current context.
    
  2. Vous pouvez maintenant exécuter des commandes kubectl en lecture seule via la passerelle de connexion:

    kubectl get pods -A
    

    Si vous avez besoin de droits d'administrateur complets sur le cluster d'administration, consultez la section Configurer la passerelle de connexion.

Dépannage

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

Étape suivante

Créer un cluster d'utilisateur