Présentation
Kubernetes est un système open source conçu pour orchestrer, mettre à l'échelle et déployer des applications conteneurisées. Si vous avez déjà travaillé avec Kubernetes, vous savez à quel point il est utile pour gérer les conteneurs.
Vous saurez également que les conteneurs ne fonctionnent pas toujours comme ils le devraient. Si une erreur apparaît, vous avez besoin d'un moyen rapide et facile de résoudre le problème.
Ce didacticiel explique comment redémarrer les pods dans Kubernetes.
Prérequis
- Accès à une fenêtre de terminal/ligne de commande
- Un cluster Kubernetes
- L'outil de ligne de commande Kubernetes kubectl
Redémarrage des pods Kubernetes
Supposons que l'un des pods de votre conteneur signale une erreur. En fonction de la stratégie de redémarrage, Kubernetes peut essayer de redémarrer automatiquement le pod pour le faire fonctionner à nouveau. Cependant, cela ne résout pas toujours le problème.
Si Kubernetes n'est pas en mesure de résoudre le problème par lui-même et que vous ne trouvez pas la source de l'erreur, le redémarrage du pod est le moyen le plus rapide de faire fonctionner à nouveau votre application.
Méthode 1 :redémarrage progressif
Depuis la mise à jour 1.15, Kubernetes vous permet d'effectuer un redémarrage progressif de votre déploiement. En tant que nouvel ajout à Kubernetes, il s'agit de la méthode de redémarrage la plus rapide.
kubectl rollout restart deployment [deployment_name]
La commande mentionnée ci-dessus effectue un arrêt pas à pas et redémarre chaque conteneur de votre déploiement. Votre application sera toujours disponible car la plupart des conteneurs seront toujours en cours d'exécution.
Méthode 2 :Utilisation de variables d'environnement
Une autre méthode consiste à définir ou à modifier une variable d'environnement pour forcer les pods à redémarrer et à se synchroniser avec les modifications que vous avez apportées.
Par exemple, vous pouvez modifier la date de déploiement du conteneur :
kubectl set env deployment [deployment_name] DEPLOY_DATE="$(date)"
Dans l'exemple ci-dessus, la commande set env
configure un changement dans les variables d'environnement, deployment [deployment_name]
sélectionne votre déploiement, et DEPLOY_DATE="$(date)"
modifie la date de déploiement et force le redémarrage du pod.
Méthode 3 :Mise à l'échelle du nombre de répliques
Enfin, vous pouvez utiliser l'scale
commande pour modifier le nombre de répliques du pod défectueux. Définir ce montant sur zéro éteint essentiellement le pod :
kubectl scale deployment [deployment_name] --replicas=0
Pour redémarrer le pod, utilisez la même commande pour définir le nombre de répliques sur une valeur supérieure à zéro :
kubectl scale deployment [deployment_name] --replicas=1
Lorsque vous définissez le nombre de répliques sur zéro, Kubernetes détruit les répliques dont il n'a plus besoin.
Une fois que vous avez défini un nombre supérieur à zéro, Kubernetes crée de nouvelles répliques. Les nouvelles répliques porteront des noms différents des anciennes. Vous pouvez utiliser la commande kubectl get pods
pour vérifier l'état des pods et voir quels sont les nouveaux noms.