$ command-helper

Kubernetes (kubectl)

Контексты, поды, логи, деплойменты, отладка и port-forward.

Потребуется вход через Google

Контекст и неймспейсы

Текущий контекст
kubectl config current-context
Список контекстов
kubectl config get-contexts
Переключить контекст
kubectl config use-context <context>
Неймспейс по умолчанию для текущего контекста
kubectl config set-context --current --namespace=<namespace>

Просмотр ресурсов

Поды в неймспейсе
kubectl get pods -n <namespace>
Поды с нодами и IP
kubectl get pods -n <namespace> -o wide
Всё основное в неймспейсе
kubectl get all -n <namespace>
Подробности и события пода
kubectl describe pod <pod> -n <namespace>
События, отсортированные по времени
kubectl get events -n <namespace> --sort-by=.lastTimestamp
Поды не в состоянии Runningпродвинутая
kubectl get pods -A --field-selector=status.phase!=Running
Потребление ресурсов подами
kubectl top pods -n <namespace>

Логи и отладка

Логи пода в реальном времени
kubectl logs -f <pod> -n <namespace>
Логи предыдущего (упавшего) контейнера
kubectl logs <pod> -n <namespace> --previous
Логи всех подов деплоймента
kubectl logs -f deployment/<deployment> -n <namespace> --all-containers
Зайти в под
kubectl exec -it <pod> -n <namespace> -- sh
Пробросить порт сервиса на localhost
kubectl port-forward svc/<k8s_service> 8080:80 -n <namespace>
Временный под для отладки сетипродвинутая
kubectl run debug --rm -it --image=nicolaka/netshoot -n <namespace> -- bash

Деплойменты

Применить манифест
kubectl apply -f manifest.yaml
Перезапустить деплоймент
kubectl rollout restart deployment/<deployment> -n <namespace>
Статус выкатки
kubectl rollout status deployment/<deployment> -n <namespace>
Откатить на предыдущую версию
kubectl rollout undo deployment/<deployment> -n <namespace>
Масштабировать
kubectl scale deployment/<deployment> --replicas=3 -n <namespace>
Декодировать секретпродвинутая
kubectl get secret <k8s_secret> -n <namespace> -o jsonpath='{.data.password}' | base64 -d