Ce document explique comment créer un cluster d'administrateur pour GKE sur VMware. 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 :
- Se connecter au poste de travail administrateur
- Cette VM dispose des outils nécessaires pour créer des clusters.
- 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.
- 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
.
- (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
.
- Créez un cluster d'administrateur.
- Utilisez
gkectl
pour créer un cluster d'administrateur comme spécifié dans les fichiers de configuration terminés. Leonprem-admin-cluster-controller
du cluster d'amorçage temporaire gère la création du cluster d'administrateur.
- 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 GKE 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.
Remplissez les autres champs de la section "Réseau" du fichier de configuration si nécessaire:
Si vous avez décidé d'utiliser des adresses IP statiques pour vos nœuds de cluster, le
network.ipMode.ipBlockFilePath
et la sectionnetwork.hostconfig
sont obligatoires. La sectionnetwork.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 un cluster d'administrateur haute disponibilité ou l'équilibreur de charge Seesaw, la section
network.hostconfig
est obligatoire, que vous utilisiez des adresses IP DHCP ou statiques 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.
Cluster d'administrateur haute disponibilité (preview)
Si vous souhaitez créer un cluster d'administrateur à haute disponibilité, remplissez les sections network.controlPlaneIPBlock
et network.hostConfig
. Définissez également adminMaster.replicas
sur 3
.
Un cluster d'administrateur à haute disponibilité comporte trois nœuds qui exécutent les composants du plan de contrôle.
Les clusters d'administrateur haute disponibilité présentent les exigences et limites suivantes:
Un cluster d'utilisateur géré par un cluster d'administrateur haute disponibilité doit activer Controlplane V2.
Les clusters d'administrateur à haute disponibilité ne sont pas compatibles avec la sauvegarde et la restauration.
Vous ne pouvez pas utiliser l'équilibreur de charge Seesaw pour un cluster d'administrateur haute disponibilité. De plus, vous ne pouvez pas utiliser l'équilibreur de charge Seesaw pour un cluster d'utilisateur géré par un cluster d'administrateur à haute disponibilité.
Les clusters d'administrateur haute disponibilité ne sont pas compatibles avec la rotation des autorités de certification du cluster d'administrateur.
Les clusters d'administrateur haute disponibilité ne sont pas compatibles avec
gkectl get-config
.
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 sectionloadBalancer.seesaw
.Équilibrage de charge intégré avec F5 BIG-IP Définissez
loadBalancer.kind
sur"F5BigIP"
, puis remplissez la sectionf5BigIP
.Équilibrage de charge manuel. Définissez
loadBalancer.kind
sur"ManualLB"
, puis remplissez la sectionmanualLB
.
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 GKE sur VMware crée des règles d'anti-affinité VMware Distributed Resource Scheduler (DRS) pour vos nœuds de cluster d'administrateur, ce qui entraîne leur propagation 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, renseignez les champs cpus
et memoryMB
dans la section adminMaster
.
Aperçu: si vous souhaitez créer un cluster d'administrateur à haute disponibilité, définissez le champ replicas
de la section adminMaster
sur 3
. Sinon, définissez-la sur 1
.
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
Décidez où vous souhaitez conserver les images de conteneur pour les composants GKE sur 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
GKE sur VMware utilise votre compte de service d'accès aux composants pour télécharger des 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
Enregistrez votre cluster d'administrateur dans un parc Google Cloud en remplissant la section gkeConnect
.
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
.
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 du 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
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.
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
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 cryptographiques.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.
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 ...
7. Sauvegarder des fichiers
Nous vous recommandons de sauvegarder le fichier kubeconfig de votre cluster d'administrateur. Autrement dit, copiez le fichier kubeconfig depuis votre poste de travail administrateur vers un autre emplacement. Si vous perdez l'accès au poste de travail administrateur ou si le fichier kubeconfig sur ce poste est accidentellement supprimé, 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. Ensuite, 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 maintenant sauvegarder admin-cluster-ssh-key
à un autre emplacement de votre choix.
Dépannage
Consultez la section Dépanner la création et la mise à niveau du cluster.
Étapes suivantes
Créer un cluster d'utilisateur