Cet article explique comment mettre à niveau GKE On-Prem.
Pour mettre à niveau GKE On-Prem, vous devez mettre à niveau votre poste de travail administrateur. Ensuite, vous devez mettre à niveau vos clusters.
Avant de commencer
- Veillez à suivre ces instructions depuis votre poste de travail local ou votre ordinateur portable. Ne suivez pas ces instructions depuis votre poste de travail administrateur existant.
- Vérifiez la version actuelle de vos clusters.
- Consultez les notes de version.
- Examinez les versions
Lisez également les points suivants :
À propos des temps d'arrêt pendant les mises à niveau
Ressource | Description |
---|---|
Cluster d'administrateur | En cas de panne d'un cluster d'administrateur, les plans de contrôle et les charges de travail des clusters d'utilisateur continuent de s'exécuter, sauf s'ils sont affectés par une panne ayant provoqué le temps d'arrêt. |
Plan de contrôle du cluster d'utilisateur | En règle générale, les plans de contrôle des clusters d'utilisateur ne font pas l'objet de temps d'arrêt significatifs. Cependant, les connexions de longue durée au serveur d'API Kubernetes peuvent être interrompues et doivent être rétablies. Dans ce cas, l'appelant de l'API doit effectuer de nouvelles tentatives jusqu'à ce qu'il établisse une connexion. Dans le pire des cas, le temps d'arrêt peut durer jusqu'à une minute pendant une mise à niveau. |
Nœuds de cluster d'utilisateur | Si une mise à niveau nécessite une modification des nœuds de cluster d'utilisateur, GKE On-Prem recrée les nœuds de manière progressive et replanifie les pods exécutés sur ces nœuds. Vous pouvez éviter l'impact sur vos charges de travail en configurant des règles PodDisruptionBudgets et d'anti-affinité appropriées. |
Mise à niveau séquentielle
GKE On-Prem est compatible avec la mise à niveau séquentielle. Pour mettre à niveau un cluster vers une nouvelle version, il doit déjà être de la dernière version précédente.
Vous ne pouvez pas mettre à niveau vos clusters directement vers la dernière version s'ils sont en retard de plusieurs versions. Le cas échéant, vous devez mettre à niveau le cluster de manière séquentielle.
Exemple
Supposons que les versions suivantes soient disponibles, et que votre poste de travail administrateur et vos clusters exécutent la version la plus ancienne :
- 1.0.1 (version la plus ancienne)
- 1.0.2
- 1.1 (dernière version)
Dans ce cas, la version 1.1 est la dernière. Pour passer de la version 1.0.1 à la version 1.1, procédez comme suit :
- Mettez à niveau votre poste de travail administrateur de la version 1.0.1 vers la version 1.0.2.
- Mettez à niveau vos clusters de la version 1.0.1 vers la version 1.0.2.
- Mettez à niveau votre poste de travail administrateur de la version 1.0.2 vers la version 1.1.
- Mettez à niveau vos clusters de la version 1.0.2 vers la version 1.1.
Sauvegarder votre fichier de configuration GKE On-Prem et vos fichiers kubeconfig
Lorsque vous mettez à niveau votre poste de travail administrateur, Terraform supprime sa VM et la remplace par un poste de travail administrateur mis à niveau. Avant de mettre à niveau votre poste de travail administrateur, vous devez sauvegarder votre fichier de configuration GKE On-Prem et les fichiers kubeconfig de vos clusters. Ensuite, vous devez copier les fichiers sur votre poste de travail administrateur mis à niveau.
Mettre à niveau le poste de travail administrateur
Lorsque vous mettez à niveau votre poste de travail administrateur, celui-ci inclut les entités suivantes, qui sont de la même version que le fichier OVA (Open Virtualization Appliance) du poste de travail administrateur :
gkectl
- Groupe complet
Après avoir mis à niveau votre poste de travail administrateur, vous devez mettre à niveau vos clusters.
Télécharger le fichier OVA
À partir de la page Téléchargements, téléchargez le fichier OVA du poste de travail administrateur correspondant à la version vers laquelle vous souhaitez effectuer la mise à niveau.
Pour télécharger le dernier fichier OVA, exécutez la commande suivante :
gsutil cp gs://gke-on-prem-release/admin-appliance/1.1.2-gke.0/gke-on-prem-admin-appliance-vsphere-1.1.2-gke.0.{ova,ova.sig} ~/
Importer le fichier OVA dans vSphere et le marquer comme modèle de VM
Dans les sections suivantes, vous allez :
- créer des variables déclarant les éléments de votre environnement vSphere et vCenter Server ;
- importer l'OVA du poste de travail d'administrateur dans vSphere et le marquer comme modèle de VM.
Créer des variables pour govc
Avant d'importer le fichier OVA du poste de travail administrateur dans vSphere, vous devez fournir à govc
certaines variables déclarant les éléments de votre environnement vSphere et vCenter Server.
export GOVC_URL=https://[VCENTER_SERVER_ADDRESS]/sdk export GOVC_USERNAME=[VCENTER_SERVER_USERNAME] export GOVC_PASSWORD=[VCENTER_SERVER_PASSWORD] export GOVC_DATASTORE=[VSPHERE_DATASTORE] export GOVC_DATACENTER=[VSPHERE_DATACENTER] export GOVC_INSECURE=true
Vous pouvez choisir d'utiliser le pool de ressources par défaut de vSphere ou créer le vôtre :
# If you want to use a resource pool you've configured yourself, export this variable: export GOVC_RESOURCE_POOL=[VSPHERE_CLUSTER]/Resources/[VSPHERE_RESOURCE_POOL]
# If you want to use vSphere's default resource pool, export this variable instead: export GOVC_RESOURCE_POOL=[VSPHERE_CLUSTER]/Resources
où :
- [VCENTER_SERVER_ADDRESS] est le nom d'hôte ou l'adresse IP de votre serveur vCenter ;
- [VCENTER_SERVER_USERNAME] est le nom d'utilisateur d'un compte détenant le rôle d'administrateur ou des droits équivalents dans le serveur vCenter ;
- [VCENTER_SERVER_PASSWORD] est le mot de passe du compte serveur vCenter ;
- [VSPHERE_DATASTORE] est le nom du datastore que vous avez configuré dans votre environnement vSphere ;
- [VSPHERE_DATACENTER] est le nom du centre de données que vous avez configuré dans votre environnement vSphere ;
- [VSPHERE_CLUSTER] est le nom du cluster que vous avez configuré dans votre environnement vSphere. Pour utiliser un pool de ressources autre que celui par défaut,
- [VSPHERE_RESOURCE_POOL] est le nom du pool de ressources que vous avez configuré dans votre environnement vSphere.
Importer le fichier OVA dans vSphere : commutateur standard
Si vous utilisez un commutateur standard vSphere, importez le fichier OVA dans vSphere à l'aide de la commande suivante :
govc import.ova -options - ~/gke-on-prem-admin-appliance-vsphere-1.1.2-gke.0.ova <<EOF { "DiskProvisioning": "thin", "MarkAsTemplate": true } EOF
Importer le fichier OVA dans vSphere : commutateur distribué
Si vous utilisez un commutateur distribué vSphere, importez le fichier OVA dans vSphere à l'aide de cette commande, où [YOUR_DISTRIBUTED_PORT_GROUP_NAME] est le nom de votre groupe de ports distribué :
govc import.ova -options - ~/gke-on-prem-admin-appliance-vsphere-1.1.2-gke.0.ova <<EOF { "DiskProvisioning": "thin", "MarkAsTemplate": true, "NetworkMapping": [ { "Name": "VM Network", "Network": "[YOUR_DISTRIBUTED_PORT_GROUP_NAME]" } ] } EOF
Définir la variable de modèle Terraform pour la nouvelle VM de poste de travail administrateur
Dans le fichier TFVARS de votre poste de travail administrateur, définissez vm_template
sur la version vers laquelle vous souhaitez effectuer la mise à niveau. La valeur de vm_template
ressemble à ceci, où [VERSION] correspond à la version de l'OVA :
gke-on-prem-admin-appliance-vsphere-[VERSION]
Utiliser Terraform pour mettre à niveau votre poste de travail administrateur
Pour mettre à niveau votre poste de travail administrateur, exécutez la commande ci-après. Cette commande supprime la VM actuelle du poste de travail administrateur et la remplace par une VM mise à niveau :
terraform init && terraform apply -auto-approve -input=false
Se connecter au poste de travail administrateur
Se connecter en SSH au poste de travail administrateur :
ssh -i ~/.ssh/vsphere_workstation ubuntu@[IP_ADDRESS]
Si vous utilisez un proxy, vous devez configurer Google Cloud CLI pour le proxy afin de pouvoir exécuter les commandes
gcloud
etgsutil
. Pour obtenir des instructions, consultez la page Configurer gcloud CLI pour une utilisation derrière un proxy/pare-feu.Connectez-vous à Google Cloud à l'aide des identifiants de votre compte :
gcloud auth login
Enregistrez
gcloud
en tant qu'assistant d'identification Docker (en savoir plus sur cette commande) :gcloud auth configure-docker
Créez une clé privée pour votre compte de service sur liste d'autorisation :
Copiez l'adresse e-mail du compte de service.
gcloud iam service-accounts list
Créez la clé privée du compte de service, où [KEY_FILE] est le nom que vous choisissez pour le fichier. Cette commande enregistre le fichier dans le répertoire de travail actuel :
gcloud iam service-accounts keys create key.json \ --project [PROJECT_ID] --iam-account [ALLOWLISTED_SERVICE_ACCOUNT_EMAIL]
où :
- [PROJECT_ID] est l'ID de votre projet.
- [KEY_FILE] est un nom et un chemin dans lesquels enregistrer la clé privée du compte de service, telle que
/home/ubuntu/key.json
. - [ALLOWLISTED_SERVICE_ACCOUNT_EMAIL] est l'adresse e-mail du compte de service sur liste d'autorisation.
Activez votre compte de service sur liste d'autorisation :
gcloud auth activate-service-account --project [PROJECT_ID] \ --key-file [KEY_FILE]
Copier la configuration sauvegardée et les fichiers kubeconfig
Précédemment, vous avez sauvegardé votre fichier de configuration GKE On-Prem et les fichiers kubeconfig de vos clusters. Vous devez maintenant copier ces fichiers sur votre poste de travail administrateur mis à niveau.
Mettre à niveau les clusters
Après avoir mis à niveau votre poste de travail administrateur et vous y être connecté, procédez comme suit :
Vérifier que suffisamment d'adresses IP sont disponibles
Avant de procéder à la mise à niveau, assurez-vous que vous disposez de suffisamment d'adresses IP pour vos clusters.
DHCP
Si les adresses IP du cluster sont attribuées par un serveur DHCP, vérifiez que le serveur DHCP du réseau dans lequel les nœuds sont créés possède suffisamment d'adresses IP. Il doit y avoir plus d'adresses IP que de nœuds s'exécutant dans le cluster d'utilisateur.
IP statiques
Si le cluster utilise des adresses IP statiques, vérifiez que vous avez alloué suffisamment d'adresses IP au cluster :
kubectl get cluster --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] \ -n [USER_CLUSTER_NAME] [USER_CLUSTER_NAME] -o yaml
où :
- [ADMIN_CLUSTER_KUBECONFIG] indique à kubectl d'utiliser le fichier kubeconfig du cluster d'administrateur, qui permet d'afficher et/ou de modifier les configurations de cluster d'utilisateur.
-n [USER_CLUSTER_NAME]
indique à kubectl d'examiner un espace de noms portant le même nom que le cluster d'utilisateur.[USER_CLUSTER_NAME] -o yaml
indique à kubectl le cluster d'utilisateur sur lequel vous exécutez la commande.-o yaml
affiche la configuration du cluster d'utilisateur.
Dans le résultat de la commande, recherchez le champ reservedAddresses
. Il doit y avoir plus d'adresses IP dans le champ que de nœuds en cours d'exécution dans le cluster d'utilisateur.
Si vous devez ajouter d'autres adresses au champ reservedAddresses
, procédez comme suit :
Ouvrez le fichier de configuration du cluster d'utilisateur pour le modifier :
kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] edit cluster [USER_CLUSTER_NAME] \ -n [USER_CLUSTER_NAME] --validate=false
La configuration du cluster s'ouvre dans l'éditeur par défaut de votre interface système.
Ajoutez autant de blocs d'adresses IP statiques supplémentaires que nécessaire. Un bloc d'adresses IP comporte les champs
gateway
,hostname
,ip
etnetmask
.
Voici un exemple de champ reservedAddresses
avec ses quatre blocs d'adresses IP statiques mis en surbrillance :
... networkSpec: dns: - 172.x.x.x ntp: 129.x.x.x reservedAddresses: - gateway: 100.x.x.x hostname: host-1 ip: 100.x.x.x netmask: x - gateway: 100.x.x.x hostname: host-2 ip: 100.x.x.x netmask: x - gateway: 100.x.x.x hostname: host-3 ip: 100.x.x.x netmask: x - gateway: 100.x.x.x hostname: host-4 ip: 100.x.x.x netmask: x ...
Modifier le fichier de configuration
Sur la VM de votre poste de travail administrateur, modifiez votre fichier de configuration. Définissez la valeur de bundlepath
, où [VERSION] est la version de GKE On-Prem vers laquelle vous mettez à niveau vos clusters :
bundlepath: /var/lib/gke/bundles/gke-onprem-vsphere-[VERSION].tgz
À propos des fonctionnalités activées automatiquement
Une nouvelle version de GKE On-Prem peut inclure de nouvelles fonctionnalités ou une compatibilité avec des fonctionnalités VMware vSphere spécifiques. Parfois, la mise à niveau vers une version de GKE On-Prem active automatiquement ces fonctionnalités. Vous pouvez en apprendre plus sur les nouvelles fonctionnalités dans les notes de version de GKE On-Prem. De nouvelles fonctionnalités apparaissent parfois dans le fichier de configuration GKE On-Prem.
Désactiver les nouvelles fonctionnalités via le fichier de configuration
Si vous devez désactiver une nouvelle fonctionnalité qui a été automatiquement activée dans une nouvelle version de GKE On-Prem et qui est pilotée par le fichier de configuration, effectuez la procédure ci-après avant de mettre à niveau votre cluster :
Depuis votre poste de travail administrateur mis à niveau, créez un fichier de configuration ayant un nom différent de celui de votre fichier de configuration actuel :
gkectl create-config --config [CONFIG_NAME]
Ouvrez le nouveau fichier de configuration et le champ de la fonctionnalité. Fermez le fichier.
Ouvrez votre fichier de configuration actuel et ajoutez le champ de la nouvelle fonctionnalité dans la spécification appropriée.
Dans le champ, indiquez
false
ou une valeur équivalente.Enregistrez le fichier de configuration. Procédez à la mise à niveau de vos clusters.
Avant de mettre à niveau vos clusters, vous devez toujours lire les notes de version. Vous ne pouvez pas modifier de manière déclarative la configuration d'un cluster existant après sa mise à niveau.
Exécuter gkectl prepare
Exécutez la commande suivante :
gkectl prepare --config [CONFIG_FILE]
La commande gkectl prepare
exécute les tâches suivantes :
Si nécessaire, copiez une nouvelle image d'OS de nœud dans votre environnement vSphere et marquez-la comme modèle.
Transférez les images Docker mises à jour, spécifiées dans le nouveau groupe, vers votre registre Docker privé, si vous en avez configuré un.
Mettre à niveau votre cluster d'administrateur
Exécutez la commande suivante :
gkectl upgrade admin \ --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] \ --config [CONFIG_FILE]
où [ADMIN_CLUSTER_KUBECONFIG] est le fichier kubeconfig du cluster d'administrateur et [CONFIG_FILE] est le fichier de configuration GKE On-Prem que vous utilisez pour effectuer la mise à niveau.
Mettre à jour votre cluster d'utilisateur
Pour mettre à niveau un cluster d'utilisateur, la version de votre cluster d'administrateur doit être au moins aussi récente que la version cible de la mise à niveau. Si la version de votre cluster d'administrateur n'est pas aussi récente, mettez d'abord ce cluster à niveau.
gkectl
Depuis votre poste de travail administrateur, exécutez la commande suivante :
gkectl upgrade cluster \ --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] \ --config [CONFIG_FILE] \ --cluster-name [CLUSTER_NAME]
où [ADMIN_CLUSTER_KUBECONFIG] est le fichier kubeconfig du cluster d'administrateur, [CLUSTER_NAME] est le nom du cluster d'utilisateur que vous mettez à niveau et [CONFIG_FILE] est le fichier de configuration GKE On-Prem que vous utilisez pour effectuer la mise à niveau.
Console
Vous pouvez choisir d'enregistrer vos clusters d'utilisateur avec lq console Google Cloud lors de l'installation ou après les avoir créés. Depuis le menu GKE de la console Google Cloud, vous pouvez afficher vos clusters GKE On-Prem enregistrés et vos clusters Google Kubernetes Engine et vous y connecter.
Lorsqu'une mise à niveau devient disponible pour les clusters d'utilisateur GKE On-Prem, une notification s'affiche dans la console Google Cloud. Cliquer sur cette notification permet d'afficher la liste des versions disponibles et une commande gkectl
que vous pouvez exécuter pour mettre à niveau le cluster :
Accédez au menu GKE dans la console Google Cloud.
Dans la colonne Notifications du cluster d'utilisateur, cliquez sur Mise à niveau disponible, si cette option est disponible.
Copiez la commande
gkectl upgrade cluster
.Depuis votre poste de travail administrateur, exécutez la commande
gkectl upgrade cluster
, où [ADMIN_CLUSTER_KUBECONFIG] est le fichier kubeconfig du cluster d'administrateur, [CLUSTER_NAME] est le nom du cluster utilisateur que vous mettez à niveau, et [CONFIG_FILE] est le fichier GKE On-Prem que vous utilisez pour effectuer la mise à niveau.
Reprendre une mise à niveau
Si une mise à niveau du cluster d'utilisateur est interrompue, mais que le cluster d'administrateur a bien été mis à niveau, vous pouvez reprendre la mise à niveau en exécutant à nouveau gkectl upgrade cluster
avec le même fichier de configuration GKE On-Prem et le même cluster d'administrateur kubeconfig.
À propos de la reprise d'une mise à niveau du cluster d'administrateur
Vous ne devez pas interrompre une mise à niveau du cluster d'administrateur. Actuellement, il n'est pas toujours possible de reprendre les mises à niveau du cluster d'administrateur. Si une mise à niveau du cluster d'administrateur est interrompue pour quelque raison que ce soit, contactez l'assistance pour obtenir de l'aide.
Problèmes connus
Les problèmes connus suivants affectent la mise à niveau des clusters.
Perturbation des charges de travail comportant des PodDisruptionBudgets
Actuellement, la mise à niveau de clusters peut entraîner des perturbations ou des temps d'arrêt pour les charges de travail qui utilisent des PodDisruptionBudgets (PDB).
Version 1.1.1-gke.2 : le disque de données du dossier de datastore vSAN peut être supprimé
Si vous utilisez un datastore vSAN, vous devez créer un dossier dans lequel enregistrer le VMDK. Actuellement, un problème connu nécessite que vous fournissiez l'identifiant unique universel (UUID) du dossier à vcenter.datadisk
au lieu de son chemin d'accès au fichier. Cette incohérence peut entraîner l'échec des mises à niveau.
Un correctif est prévu pour la version 1.1.2. Avant de procéder à la mise à niveau, procédez comme suit afin d'utiliser le nœud du plan de contrôle administrateur pour contourner ce problème :
- Depuis l'interface vCenter, obtenez l'UUID du dossier dans votre datastore vSAN.
Répertoriez les ressources de la machine figurant dans vos clusters. Ces machines correspondent aux nœuds des clusters :
kubectl get machines -n all
Pour la Machine du plan de contrôle administrateur (
gke-admin-master
), ouvrez sa configuration pour la modifier :kubectl edit machine [MACHINE_NAME]
Modifiez le champ
spec.providerSpec.value.machineVariables.data_disk_path
. Remplacez le chemin d'accès du fichier VMDK par l'UUID. Exemple :spec: providerSpec: value: apiVersion: vsphereproviderconfig.k8s.io/v1alpha1 kind: VsphereMachineProviderConfig machineVariables: data_disk_path: 14159b5d-4265-a2ba-386b-246e9690c588/my-disk.vmdk datacenter: datacenter datastore: datastore
Enregistrez le fichier.
Ouvrez le fichier de configuration GKE On-Prem.
Dans
vcenter.datadisk
, remplacez le dossier dans chemin d'accès au fichier par l'UUID du dossier. Exemple :vcenter: ... datadisk: "14159b5d-4265-a2ba-386b-246e9690c588/my-disk.vmdk"
Procédez à la mise à niveau de vos clusters.
Mise à niveau vers la version 1.1.0-gke.6 depuis la version 1.0.2-gke.3 : problème OIDC
Les clusters des versions 1.0.11, 1.0.1-gke.5 et 1.0.2-gke.3 pour lesquels OpenID Connect (OIDC) est configuré ne peuvent pas être mis à niveau vers la version 1.1.0-gke.6. Ce problème est résolu dans la version 1.1.1-gke.2.
Si vous avez configuré un cluster de version 1.0.11, 1.0.1-gke.5 ou 1.0.2-gke.3 avec OIDC lors de l'installation, vous ne pouvez pas le mettre à niveau. À la place, vous devez créer d'autres clusters.
Mise à niveau vers la version 1.0.2-gke.3 depuis la version 1.0.11
La version 1.0.2-gke.3 introduit les champs OIDC suivants (usercluster.oidc
). Ces champs permettent de se connecter à un cluster à partir de la console Google Cloud :
usercluster.oidc.kubectlredirecturl
usercluster.oidc.clientsecret
usercluster.oidc.usehttpproxy
Si vous souhaitez utiliser OIDC, le champ clientsecret
est obligatoire, même si vous ne souhaitez pas vous connecter à un cluster depuis la console Google Cloud. Pour utiliser OIDC, vous devrez peut-être fournir une valeur d'espace réservé pour clientsecret
:
oidc: clientsecret: "secret"
Annexe
À propos des règles VMware DRS activées dans la version 1.1.0-gke.6
Depuis la version 1.1.0-gke.6, GKE On-Prem crée automatiquement des règles d'anti-affinité VMware Distributed Resource Scheduler (DRS) pour les nœuds de votre cluster d'utilisateur. Ceux-ci sont ainsi répartis sur au moins trois hôtes physiques dans votre centre de données. Depuis la version 1.1.0-gke.6, cette fonctionnalité est automatiquement activée pour les nouveaux clusters et pour les clusters existants.
Avant de procéder à la mise à niveau, assurez-vous que votre environnement vSphere remplit les conditions suivantes :
- La fonctionnalité VMware DRS est activée. VMware DRS nécessite l'édition de licence vSphere Enterprise Plus. Pour en savoir plus sur l'activation de DRS, consultez la page Enabling VMware DRS in a cluster (Activer VMware DRS dans un cluster).
- Le compte utilisateur vSphere fourni dans le champ
vcenter
dispose de l'autorisationHost.Inventory.EditCluster
. - Au moins trois hôtes physiques sont disponibles.
Désactiver VMware DRS avant la mise à niveau vers la version 1.1.0-gke.6
Si vous ne souhaitez pas activer cette fonctionnalité pour vos clusters d'utilisateur existants (par exemple, si vous ne disposez pas d'un nombre suffisant d'hôtes pour l'exécuter), effectuez la procédure ci-dessous avant de mettre à niveau vos clusters d'utilisateur :
- Ouvrez votre fichier de configuration GKE On-Prem existant.
- Sous la spécification
usercluster
, ajoutez le champantiaffinitygroups
comme décrit dans la documentationantiaffinitygroups
:usercluster: ... antiaffinitygroups: enabled: false
- Enregistrez le fichier.
- Utilisez le fichier de configuration pour effectuer la mise à niveau. Vos clusters sont mis à niveau, mais la fonctionnalité n'est pas activée.
Autre scénario de mise à niveau
Cet article décrit le moyen le plus simple de mettre à niveau GKE On-Prem. Le tableau ci-dessous décrit un autre scénario de mise à niveau. Dans ce scénario, vous ne devez mettre à niveau que gkectl
et vos clusters, vous ne mettez pas à niveau le poste de travail d'administrateur :
Scénario | Étapes |
---|---|
La version ne comporte aucune mise à jour de sécurité pour le poste de travail administrateur. |
|
Dépannage
Pour en savoir plus, consultez la section Dépannage.
Nouveaux nœuds créés, mais non opérationnels
- Symptômes
Les nouveaux nœuds ne s'enregistrent pas eux-mêmes dans le plan de contrôle du cluster d'utilisateur lors de l'utilisation du mode d'équilibrage de charge manuel.
- Causes possibles :
La validation Ingress dans les nœuds est peut-être activée, ce qui bloque le processus de démarrage des nœuds.
- Solution
Pour désactiver la validation, exécutez la commande suivante :
kubectl patch machinedeployment [MACHINE_DEPLOYMENT_NAME] -p '{"spec":{"template":{"spec":{"providerSpec":{"value":{"machineVariables":{"net_validation_ports": null}}}}}}}' --type=merge
Diagnostiquer des problèmes de cluster à l'aide de gkectl
Utilisez les commandes gkectl diagnose
pour identifier les problèmes de cluster et partager des informations de cluster avec Google. Consultez la page Diagnostiquer les problèmes de cluster.
Comportement de journalisation par défaut
Pour gkectl
et gkeadm
, l'utilisation des paramètres de journalisation par défaut est suffisante :
-
Par défaut, les entrées de journal sont enregistrées comme suit :
-
Pour
gkectl
, le fichier journal par défaut est/home/ubuntu/.config/gke-on-prem/logs/gkectl-$(date).log
, et le fichier est lié symboliquement au fichierlogs/gkectl-$(date).log
dans le répertoire local où vous exécutezgkectl
. -
Pour
gkeadm
, le fichier journal par défaut estlogs/gkeadm-$(date).log
dans le répertoire local où vous exécutezgkeadm
.
-
Pour
- Toutes les entrées de journal sont enregistrées dans le fichier journal, même si elles ne sont pas affichées sur le terminal (lorsque
--alsologtostderr
a la valeurfalse
). - Le niveau de verbosité
-v5
(par défaut) couvre toutes les entrées de journal requises par l'équipe d'assistance. - Le fichier journal contient également la commande exécutée et le message d'échec.
Nous vous recommandons d'envoyer le fichier journal à l'équipe d'assistance lorsque vous avez besoin d'aide.
Spécifier un emplacement autre que celui par défaut pour le fichier journal
Pour spécifier un emplacement autre que celui par défaut pour le fichier journal gkectl
, utilisez l'option --log_file
. Le fichier journal que vous spécifiez ne sera pas lié symboliquement au répertoire local.
Pour spécifier un emplacement autre que celui par défaut pour le fichier journal gkeadm
, utilisez l'option --log_file
.
Localiser des journaux de l'API Cluster dans le cluster d'administrateur
Si une VM ne démarre pas après le démarrage du plan de contrôle d'administrateur, vous pouvez essayer de la déboguer en inspectant les journaux des contrôleurs de l'API Cluster dans le cluster d'administrateur :
Recherchez le nom du pod des contrôleurs d'API Cluster dans l'espace de noms
kube-system
, où [ADMIN_CLUSTER_KUBECONFIG] est le chemin d'accès au fichier kubeconfig du cluster d'administrateur :kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] -n kube-system get pods | grep clusterapi-controllers
Ouvrez les journaux du pod, où [POD_NAME] correspond au nom du pod. Vous pouvez éventuellement utiliser
grep
ou un outil similaire pour rechercher les erreurs :kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] -n kube-system logs [POD_NAME] vsphere-controller-manager