Configurer le nombre maximum de pods indisponibles lors d'une mise à jour

Lorsque vous déployez ou mettez à jour le site Agent de journalisation, vous pouvez configurer le fichier logs-values.yaml pour inclure un paramètre facultatif permettant de spécifier le nombre de pods pouvant être indisponibles lors d'une mise à jour continue.

Le paramètre facultatif updateStrategy.maxUnavailable vous permet de spécifier le nombre ou le pourcentage maximum de pods indisponibles lorsque le daemonset de l'agent effectue une mise à jour continue. Mettez un pourcentage entre guillemets pour qu'il soit interprété comme une chaîne de caractères. Ne mettez pas un nombre entre guillemets pour qu'il soit interprété comme int32. Par défaut, un pourcentage de "25%" est utilisé. Configurez le site Agent de journalisation pour qu'il utilise une valeur personnalisée en ajoutant la configuration updateStrategy.maxUnavailable à votre fichier log-values.yaml:

Le texte suivant spécifie qu'un maximum de 10 % des pods peuvent être indisponibles.

updateStrategy:
  maxUnavailable: "10%" # optional (default is 25%)

Le texte suivant précise qu'un maximum de 5 pods peuvent être indisponibles.

updateStrategy:
  maxUnavailable: 5 # optional (default is 25%)

Après avoir modifié le site logs-values.yaml, vous pouvez mettre à niveau l'agent ou continuer à modifier le fichier avant d'appliquer toutes les modifications.

Lorsque les pods sont mis à jour d'une ancienne version Agent de journalisation à une nouvelle version de l'agent, Kubernetes n'arrêtera pas plus que le nombre updateStrategy.maxUnavailable de pods exécutant l'ancienne version de l'agent.

Lorsque le nombre d'anciens pods ( updateStrategy.maxUnavailable ) est atteint, la mise à jour continue est interrompue jusqu'à ce que de nouveaux pods avec la nouvelle version soient en cours d'exécution.

La commande helm peut être configurée pour attendre un temps spécifique pour que la mise à jour soit terminée (voir le timeout et wait options de mise à niveau de helm ), mais sinon, mettra uniquement à jour la définition du daemonset et laissera Kubernetes mettre à jour les pods de l'agent. Le contrôleur Kubernetes continuera à essayer de mettre à jour les pods d'agents indéfiniment jusqu'à ce que tous les pods soient mis à jour.

Si de nouvelles nacelles rencontrent des problèmes, la mise à jour ne se poursuivra pas. Pour plus d'informations sur les erreurs de configuration de l'agent, voir J'obtiens une erreur lors du démarrage de Agent de journalisation? Vérifiez et corrigez votre configuration si nécessaire et réessayez la mise à jour.