Podstawowa diagnostyka klastra
# Wyświetla wszystkie węzły Kubernetes/k3s oraz ich status.
# Najważniejsze pola: STATUS, ROLES, VERSION, INTERNAL-IP.
kubectl get nodes
# Wyświetla wszystkie pody ze wszystkich namespace'ów.
# Przydatne do szybkiego wykrycia podów w stanie Error, Pending, CrashLoopBackOff itd.
kubectl get pods -A
Instalacja i aktualizacja np AWX
# Wdraża zasoby Kubernetes z bieżącego katalogu przy użyciu Kustomize.
# W katalogu musi znajdować się plik kustomization.yaml.
kubectl apply -k .
# Wdraża lub aktualizuje zasoby z pliku awx.yaml.
# Najczęściej jest to obiekt AWX zarządzany przez AWX Operator.
kubectl apply -f /opt/awx/awx.yaml
Sprawdzanie podów AWX
# Wyświetla aktualne pody w namespace awx.
kubectl get pods -n awx
# Wyświetla pody AWX i obserwuje zmiany na żywo.
# Opcja -w oznacza watch.
kubectl get pods -n awx -w
# Pokazuje szczegółowe informacje o wszystkich podach w namespace awx.
# Szczególnie przydatna jest sekcja Events.
kubectl describe pod -n awx
# Automatycznie znajduje pierwszy pod AWX Operatora
# i wyświetla jego szczegółowy opis.
kubectl describe pod -n awx \
$(kubectl get pods -n awx -o name | grep awx-operator | head -1)
Diagnostyka konkretnych podów
# Szczegółowe informacje o konkretnym podzie awx-task.
kubectl describe pod -n awx awx-task-c8d98455d-gsxc7
# Szczegóły innej instancji poda awx-task.
kubectl describe pod awx-task-db448b44d-gvlj8 -n awx
# Szczegóły poda AWX Task.
kubectl describe pod awx-task-76b976b99f-sdzhp -n awx
# Próbuje wyświetlić szczegóły poda o nazwie awx.
# Ta komenda zadziała tylko wtedy, gdy rzeczywiście istnieje pod o nazwie "awx".
kubectl describe pod awx -n awx
AWX Operator
# Zmienia obraz kontenera kube-rbac-proxy w deployment AWX Operatora.
# W historii zostało to użyte jako obejście problemu z niedostępnym obrazem z gcr.io.
kubectl set image deployment/awx-operator-controller-manager \
-n awx \
kube-rbac-proxy=quay.io/brancz/kube-rbac-proxy:v0.15.0
# Czeka na zakończenie wdrażania nowej wersji deploymentu operatora.
kubectl rollout status deployment/awx-operator-controller-manager -n awx
# Restartuje AWX Operator.
# Kubernetes utworzy nowe pody deploymentu.
kubectl rollout restart deployment/awx-operator-controller-manager -n awx
StorageClass, PV i PVC
# Wyświetla dostępne StorageClass.
# W k3s typowo dostępny jest local-path.
kubectl get storageclass
# Wyświetla PersistentVolume dostępne w klastrze.
kubectl get pv
# Wyświetla PersistentVolumeClaim w namespace awx.
kubectl get pvc -n awx
# Obserwuje zmiany PVC w czasie rzeczywistym.
kubectl get pvc -n awx -w
# Wyświetla rozszerzone informacje o PVC.
# Można zobaczyć m.in. przypisany PV, StorageClass oraz pojemność.
kubectl get pvc -n awx -o wide
# Jednocześnie obserwuje PVC oraz pody AWX.
# Przydatne podczas diagnozowania problemów z montowaniem storage.
kubectl get pvc,pods -n awx -w
Usuwanie PVC
# Usuwa PVC o nazwie awx-projects-claim.
# UWAGA: w zależności od reclaimPolicy może to również doprowadzić
# do usunięcia powiązanego PersistentVolume i danych.
kubectl delete pvc awx-projects-claim -n awx
Najbardziej przydatny zestaw diagnostyczny AWX
# Węzły klastra
kubectl get nodes -o wide
# Wszystkie pody AWX
kubectl get pods -n awx -o wide
# Service AWX
kubectl get svc -n awx
# Ingress
kubectl get ingress -n awx
# PVC
kubectl get pvc -n awx
# PV
kubectl get pv
# StorageClass
kubectl get storageclass
# AWX Custom Resource
kubectl get awx awx -n awx -o yaml
# Eventy namespace AWX posortowane chronologicznie
kubectl get events -n awx --sort-by='.lastTimestamp'
# Logi operatora
kubectl logs -n awx \
deployment/awx-operator-controller-manager \
-c awx-manager \
--tail=200
# Obserwacja podów na żywo
kubectl get pods -n awx -w