La console Google Cloud vous permet de créer un cluster d'administrateur pour Distributed Cloud (logiciel uniquement) pour VMware via un workflow guidé. Au cours du workflow, vous exécutez gkectl register bootstrap sur votre poste de travail administrateur pour créer un cluster d'amorçage temporaire qui provisionne le cluster d'administrateur. Vous pouvez également créer un cluster d'administrateur à l'aide de gkectl ou de Terraform.
Avant de commencer
Assurez-vous d'avoir configuré votre poste de travail administrateur et de pouvoir vous y connecter, comme décrit dans 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 pour les trois nœuds du plan de contrôle et une adresse IP virtuelle du 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
gkectlpour 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é, consultezprivateRegistry. Ni Terraform, ni la console Google Cloud ne permettent d'utiliser 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 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 administrateur.
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 le poste 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 les nœuds, exécutent les 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'administrateur créé.
Voici les principales étapes à suivre pour créer un cluster d'administrateur à l'aide de la console :
Dans la console, vous saisissez les informations requises par
gkectl register bootstrap. La console affiche la commandegkectl register bootstrapavec 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.Sur votre poste de travail administrateur, exécutez
gkectl register bootstrappour créer le cluster d'amorçage. Lorsque la commande a terminé de créer le cluster d'amorçage, le résultat 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éé.Vous revenez à la console pour terminer la saisie des informations nécessaires à la création du cluster. Lors de la création du cluster, la commande
gkectl register bootstrapaffiche 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
Dans la console, accédez à la page Créer un cluster sur VMware.
Sélectionnez le projet Google Cloud dans lequel vous souhaitez créer le cluster.
Lorsque vous créez le cluster d'amorçage dans une section suivante, l'ID du projet sélectionné s'affiche dans la commande
gkectl register bootstrapdans l'option--project-id.Assurez-vous que l'option Créer un cluster d'administrateur est sélectionnée.
Cliquez sur Suivant : Installer l'environnement d'amorçage.
Installer l'environnement d'amorçage
Dans cette section, vous allez saisir les informations requises par la commande gkectl register bootstrap. Lorsque vous saisissez des valeurs dans les champs de l'interface utilisateur, la console copie les valeurs dans les options correspondantes de la commande gkectl register bootstrap affichée dans la section Amorcer l'environnement à partir du poste de travail administrateur en bas de la page.
Paramètres de base de l'environnement d'amorçage
Saisissez un nom pour le cluster d'administrateur. La console utilise le nom du cluster comme valeur de l'option
--target-cluster-namedans la commandegkectl register bootstrapaffichée en bas de la page. Le nom ne doit pas dépasser 20 caractères.Dans le champ Emplacement de l'APIGoogle Cloud , sélectionnez une région Google Clouddans 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 Emplacement de l'APIGoogle Cloud correspond au flag
--locationde la commandegkectl register bootstrap.- API GKE On-Prem (
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'option
--bundle-pathde la commandegkectl register bootstrap.
Configuration de vCenter
Si vous avez utilisé gkeadm pour créer votre poste de travail administrateur, ouvrez son fichier de configuration 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 sur le fichier de configuration du cluster d'administrateur si vous avez besoin de savoir si un champ est modifiable ou immuable.
Dans le champ Adresse, saisissez l'adresse vCenter Server.
Fichier de configuration du poste de travail administrateur : utilisez la valeur du champ
vCenter.credentials.address.Le champ Adresse correspond au flag
--vcenter-addressde la commandegkectl register bootstrap.
Dans le champ 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 au flag
--vcenter-datacenterde la commandegkectl register bootstrap.
Dans le champ 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 Nom du cluster correspond à l'option
--vcenter-clusterde la commandegkectl register bootstrap.
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 au flag
--vcenter-resource-poolde la commandegkectl register bootstrap.
Configurez une option de stockage en saisissant l'une des options suivantes :
Champ 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 au flag
--vcenter-datastorede la commandegkectl 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 Nom de la règle de stockage correspond à l'option
--vcenter-storage-policyde la commandegkectl register bootstrap.
Vous devez saisir une valeur dans le champ Datastore ou dans le champ Nom de la règle de stockage, mais pas dans les deux.
Vous pouvez éventuellement saisir le nom du dossier vCenter où se trouvent les VM de votre cluster dans le champ Dossier.
Fichier de configuration du poste de travail administrateur : utilisez la valeur du champ
vCenter.folder.Le champ Dossier correspond au flag
--vcenter-folderde la commandegkectl register bootstrap.
Dans le champ 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 Réseau correspond au flag
--vcenter-networkde la commandegkectl register bootstrap.
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é
gkeadmpour créer votre poste de travail administrateur,gkeadma copié le fichier de certificat CA que vous aviez localement sur votre poste de travail administrateur.Le champ Chemin d'accès au certificat CA correspond à
--vcenter-ca-cert-pathdans la commandegkectl register bootstrap.
Obtenir le certificat CA
Après avoir créé le cluster d'amorçage, vous devez fournir le certificat CA vCenter au format PEM dans le champ Données du certificat CA de 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 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 CA de la page Principes de base du cluster une fois le cluster d'amorçage créé.
Amorcer l'environnement depuis le poste de travail administrateur
Lorsque vous exécutez la commande gkectl register bootstrap, elle vous invite à saisir le nom d'utilisateur et le mot de passe du compte vCenter. Assurez-vous de disposer des identifiants. 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.
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.
Copiez et collez la commande
gkectl register bootstrapdans un éditeur de texte afin de pouvoir spécifier des valeurs pour les options suivantes :./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 \ --admin-kubeconfig-out=KUBECONFIG_NAMERemplacez les éléments suivants par les chemins d'accès au poste de travail administrateur :
BUNDLE_PATH: chemin d'accès au fichier de bundle. Si vous avez utiliségkeadmpour créer le poste de travail administrateur, le fichier de bundle se trouve dans/var/lib/gke/bundles/. Le nom du fichier dépend de la version de Google Distributed Cloud, par exemplegke-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 journalisation et de surveillance.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é du compte de service de journalisation-surveillance.KUBECONFIG_NAME: nom du fichier kubeconfig créé par la commandegkectl register bootstrap. Si vous ne spécifiez pas cette option, la commande crée le fichier sous le nomkubeconfigdans le répertoire de travail actuel. S'il existe déjà un fichier nommékubeconfig, la commande l'écrase.
De plus, si vous avez utilisé
gkeadmpour créer votre poste de travail administrateur,gkectla été téléchargé dans le répertoire/usr/bin/. Dans ce cas, supprimez./du début de la commande, cargkectlne se trouve pas dans le répertoire de travail actuel.Utilisez SSH pour vous connecter à votre poste de travail administrateur.
Copiez la commande et collez-la dans une fenêtre de terminal sur votre poste de travail administrateur.
Lorsque vous y êtes invité, saisissez (ou copiez et collez) le nom d'utilisateur vCenter. Le nom d'utilisateur n'est pas renvoyé à l'écran.
Lorsque vous y êtes invité, saisissez (ou copiez-collez) le mot de passe vCenter. Le mot de passe ne s'affiche pas à 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 d'amorçage à 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 la configuration du cluster d'administrateur
Revenez à la console et procédez comme suit :
Sur la page Installer l'environnement d'amorçage, cliquez sur Vérifier la connexion.
En cas de réussite, 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-namecorrespond 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-idcorrespond à 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 du projet ou d'autres valeurs d'option, procédez comme suit :
- Saisissez
Ctrl-Cpour quittergkectl register bootstrap. 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
Réexécutez la commande
gkectl register bootstrap.
Cliquez sur Suivant : Principes de base du cluster pour commencer à configurer le cluster d'administrateur.
Paramètres de base du cluster
Dans le champ 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.
Dans la section Autorisation, saisissez les adresses e-mail des utilisateurs auxquels vous souhaitez attribuer le rôle Kubernetes
clusterrole/viewen lecture seule. Notez que votre adresse e-mail est automatiquement ajoutée. Les règles 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.Cliquez sur Plan de contrôle suivant.
Plan de contrôle
Examinez les paramètres par défaut de la section Plan de contrôle et modifiez-les si nécessaire.
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 pour le 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.
Cliquez sur Suivant : Mise en réseau.
Mise en réseau
Dans cette section, vous allez spécifier les informations de mise en réseau nécessaires pour créer le cluster d'administrateur.
Dans la section 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 d'autres plages d'adresses CIDR.
CIDR des services : plage la plus petite possible :
/24. Plage la plus grande possible :/12.CIDR des pods : plage la plus petite possible :
/18. Plage la plus étendue possible : /8`.
Dans la section 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.
Cliquez sur Suivant : Équilibreur de charge.
Équilibreur de charge
Dans cette section, vous allez sélectionner le type d'équilibreur de charge à utiliser. Pour en savoir plus, consultez la présentation de l'équilibrage de charge.
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, à condition de le configurer 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.
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.
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.
Les détails du processus de création du cluster sont affichés 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. Si vous n'avez pas spécifié l'option --admin-kubeconfig-out lorsque vous avez exécuté gkectl register bootstrap, la commande crée un fichier kubeconfig nommé kubeconfig dans le répertoire dans lequel vous avez exécuté la commande.
Vous devez restreindre l'accès à ce 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.
Exécutez la commande suivante sur un ordinateur sur lequel gcloud CLI est installé pour obtenir une entrée
kubeconfigpouvant accéder au cluster via la passerelle Connect.gcloud container fleet memberships get-credentials ADMIN_CLUSTER_NAME \ --project=PROJECT_IDLe 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.Vous pouvez maintenant exécuter des commandes
kubectlen lecture seule via la passerelle Connect, par exemple :kubectl get pods -ASi vous avez besoin de droits d'administrateur complets sur le cluster d'administrateur, consultez Configurer la passerelle Connect.