Kubernetes (kubectl)
Контексты, поды, логи, деплойменты, отладка и port-forward.
Контекст и неймспейсы
Текущий контекст
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