Si vous rencontrez des problèmes lors de la mise à jour de GKE sur VMware, les sections suivantes peuvent vous aider à les résoudre. Pour en savoir plus sur les paramètres pouvant être mis à jour, consultez la section Éléments pouvant et ne peuvent pas être mis à jour dans les clusters.
Si vous avez besoin d'une aide supplémentaire, contactez Cloud Customer Care.Délai avant expiration de la mise à jour
Le délai avant expiration de la mise à jour est calculé dynamiquement en fonction des ressources à mettre à jour. Cependant, le calcul n'est pas toujours précis. Lorsque la mise à jour expire, des erreurs semblables à celles-ci s'affichent:
Dans le cluster d'utilisateur:
Failed to update the cluster:...timed out waiting for the condition...
Dans le cluster d'administrateur:
Failed to update the admin cluster:...timed out waiting for the condition...
Ce type d'erreur de délai d'inactivité peut être ignoré en toute sécurité et vous pouvez relancer la commande de mise à jour. Si vous relancez la commande et qu'elle expire à nouveau avec le même message d'erreur, contactez Cloud Customer Care.
La mise à jour contient plusieurs modifications
Les commandes gkectl update admin
et gkectl update cluster
ne permettent pas de mettre à jour plusieurs paramètres dans une seule commande. Lorsque la configuration contient une différence avec plusieurs paramètres en cours de modification, et qu'une erreur semblable à l'exemple suivant est renvoyée:
Update summary for cluster X:
antiAffinityGroups: enabled to be set to true from false &config.AAGSpec{
- Enabled: false,
+ Enabled: true,
}
user master cpu to be set to 5 from 4 config.NodePoolProps{
Role: "master",
MachineType: "standard-master",
- CPUs: 4,
+ CPUs: 5,
MemoryMB: 8192,
Replicas: 3,
... // 2 identical fields
Labels: nil,
NodeTaints: nil,
- Vsphere: nil,
&config.NodePoolVsphereSpec{Datastore: "lifecycle-workloads1-datastore1"},
+ Vsphere: nil,
BootDiskSizeGB: nil,
OSImageType: "",
... // 5 identical fields
}
Exit with error:
Failed to update the cluster: the update contains multiple changes. Please
update only one feature at a time
Cette erreur peut se produire pour diverses raisons, y compris les suivantes:
- Une erreur ou une mauvaise configuration
- Vous avez déjà exécuté
gkectl upgrade
avec les différences de configuration et vous vous attendiez à ce que les modifications soient appliquées.gkectl upgrade
n'applique aucune différence de configuration, sauf le saut de version.
- Vous avez déjà modifié la configuration pour une autre mise à jour de fonctionnalité, mais vous avez oublié d'exécuter la commande
gkectl update
.
Si vous rencontrez ce comportement, examinez la différence dans le message d'erreur et mettez à jour les paramètres requis un par un avec plusieurs commandes gkectl update
. Pour vous aider à identifier les modifications, vous pouvez utiliser gkectl get-config
pour générer des fichiers de configuration à partir d'un cluster, et afficher l'état et la configuration existants.
Modifications non compatibles
Les commandes gkectl update cluster
et gkectl update admin
ignorent les modifications non compatibles et affichent des messages d'erreur semblables aux exemples suivants:
detected unsupported changes: (-current +desired)
...
- AdvancedNetworking: &true,
+ AdvancedNetworking: &false,
...
, which will be ignored
Si vous rencontrez ce comportement, examinez la différence dans le message d'erreur et effectuez les actions suivantes:
- Si la modification est involontaire, modifiez le fichier YAML de configuration et ne mettez à jour que les modifications appropriées et voulues.
- Dans l'exemple précédent, si vous n'aviez pas l'intention de désactiver
AdvancedNetworking
, définissezadvancedNetworking: true
dans le fichier YAML de configuration.
- Dans l'exemple précédent, si vous n'aviez pas l'intention de désactiver
- Si la modification est intentionnelle, l'erreur indique qu'elle n'est pas prise en charge. Effectuez l'une des actions suivantes :
- Recréez le cluster, le cas échéant.
- Contactez l'assistance Google.
L'image de l'OS n'existe pas
Les commandes gkectl update cluster
et gkectl update admin
peuvent échouer avec des échecs de vérification préliminaire OS Images
semblables aux exemples suivants:
Dans le cluster d'utilisateur:
- Validation Category: OS Images - [FAILURE] User cluster OS images exist: os images [xxxx] don't exist, please run `gkectl prepare` to upload os images.
Dans le cluster d'administrateur:
- Validation Category: OS Images - [FAILURE] Admin cluster OS images exist: os images [xxxx] don't exist, please run `gkectl prepare` to upload os images.
Ces erreurs peuvent se produire si l'image de l'OS a été supprimée de manière inattendue dans votre environnement vCenter, par exemple via une tâche de nettoyage périodique.
Pour réimporter les images de l'OS importées, exécutez la commande gkectl prepare
comme suit:
gkectl prepare \ --bundle-path /var/lib/gke/bundles/gke-onprem-vsphere-TARGET_VERSION.tgz \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --skip-upload-container-images
L'espace disponible dans le datastore est insuffisant pour les nouveaux pools de nœuds
Lorsque vous ajoutez des pools de nœuds, la commande gkectl update cluster
peut échouer avec des erreurs de vérification préliminaire VSphere Datastore FreeSpace
semblables à l'exemple suivant:
- [FAILURE] VSphere Datastore FreeSpace: vCenter datastore: xxxx insufficient
FreeSpace, requires at least xxx GB
Cet échec indique que le datastore ne dispose pas d'un espace suffisant pour exécuter les nouveaux pools de nœuds. L'utilisation de l'une des options suivantes permet de fournir de l'espace pour que l'opération aboutisse:
- Libérez de l'espace dans le datastore.
- Configurez un datastore
nodePools[].vsphere.datastore
différent pour le pool de nœuds.