Úvod
Kubernetes je open-source systém vytvořený pro orchestraci, škálování a nasazování kontejnerizovaných aplikací. Pokud jste strávili nějaký čas prací s Kubernetes, víte, jak užitečné je to pro správu kontejnerů.
Budete také vědět, že kontejnery ne vždy jezdí tak, jak by měly. Pokud se objeví chyba, potřebujete rychlý a snadný způsob, jak problém vyřešit.
Tento kurz vysvětlí, jak restartovat moduly v Kubernetes.
Předpoklady
- Přístup k oknu terminálu/příkazovému řádku
- Cluster Kubernetes
- Nástroj příkazového řádku Kubernetes kubectl
Restartování Kubernetes Pods
Řekněme, že jeden z modulů ve vašem kontejneru hlásí chybu. V závislosti na zásadách restartování se může Kubernetes pokusit automaticky restartovat modul, aby znovu fungoval. To však problém vždy nevyřeší.
Pokud Kubernetes nedokáže problém vyřešit sám a vy nemůžete najít zdroj chyby, restartování modulu je nejrychlejší způsob, jak aplikaci znovu uvést do provozu.
Metoda 1:Postupný restart
Od aktualizace 1.15 vám Kubernetes umožňuje provést postupný restart vašeho nasazení. Jako nový přírůstek do Kubernetes je to nejrychlejší metoda restartu.
kubectl rollout restart deployment [deployment_name]
Výše zmíněný příkaz provede krok za krokem vypnutí a restartuje každý kontejner ve vašem nasazení. Vaše aplikace bude stále dostupná, protože většina kontejnerů bude stále spuštěna.
Metoda 2:Použití proměnných prostředí
Další metodou je nastavit nebo změnit proměnnou prostředí, aby se moduly restartovaly a synchronizovaly se změnami, které jste provedli.
Můžete například změnit datum nasazení kontejneru:
kubectl set env deployment [deployment_name] DEPLOY_DATE="$(date)"
Ve výše uvedeném příkladu příkaz set env
nastaví změnu v proměnných prostředí, deployment [deployment_name]
vybere vaše nasazení a DEPLOY_DATE="$(date)"
změní datum nasazení a vynutí restart modulu.
Metoda 3:Změna měřítka počtu replik
Nakonec můžete použít scale
příkaz ke změně počtu replik nefunkčního modulu. Nastavením této hodnoty na nulu se modul v podstatě vypne:
kubectl scale deployment [deployment_name] --replicas=0
Chcete-li modul restartovat, použijte stejný příkaz k nastavení počtu replik na jakoukoli hodnotu větší než nula:
kubectl scale deployment [deployment_name] --replicas=1
Když nastavíte počet replik na nulu, Kubernetes zničí repliky, které již nepotřebuje.
Jakmile nastavíte číslo vyšší než nula, Kubernetes vytvoří nové repliky. Nové repliky budou mít jiná jména než ty staré. Můžete použít příkaz kubectl get pods
zkontrolovat stav modulů a zjistit, jaká jsou nová jména.