3 января 2023 г.
1627

Команды kubectl

Разворот, удаление, перезапуск

  • kubectl apply -f manifest.yaml запуск на основе манифеста
  • kubectl delete -f manifest.yaml удаление на основе манифеста
  • kubectl apply -k . запуск на основе kustomization.yaml
  • kubectl delete -k . удаление на основе kustomization.yaml
  • kubectl delete pod <pod-name> удаление пода (вместо пода можно указывать любую сущность)
  • kubectl delete -n <namespace-name> pod <pod-name> удаление пода с указанием неймспейса
  • kubectl delete deployment <dep-name> удаление всех деплойментов
  • kubectl delete deployment --all удаление всех деплойментов
  • kubectl rollout restart deployment <dep-name> перезапуск деплоймента
  • kubectl delete pvc --all --namespace=<namespace-name> удаление всех pvc в указанном неймспейсе
  • kubectl create namespace <namespace-name> создание пространства имен

Вывод информации о сущностях

  • kubectl get all вывод списка всех сущностях
  • kubectl get all --all-namespaces=true получение информации обо всех сущностях во всех неймспейсах
  • kubectl get pods вывод списка подов
  • kubectl get pods -n <namespace-name> вывод списка подов из указанного пространства имен
  • kubectl get deploy вывод списка деплойментов
  • kubectl get svc вывод списка сервисов
  • kubectl get namespace вывод списка пространств имен
  • kubectl get pvc вывод списка pvc
  • kubectl get pv вывод списка pv
  • kubectl get pod,deploy,svc,secret,statefulset,pv,configmap,ingress --namespace=<namespace-name> вывод списков нескольких сущностей с указаниме пространства имен
  • kubectl get pods --show-labels вывод списка подов с их метками
  • kubectl get pods -L <label-name> вывод списка подов с указанными метками
  • kubectl get pods -l <key-name>=<label-name> вывод списка подов с указанными значениями ключа меток, вместо "=" может быть "!="
  • kubectl get pods -o wide вывод списка подов, с ip-адресом пода
  • kubectl get nodes вывод списка нод кластера
  • kubectl get nodes --show-labels вывод списка нод кластера с отображением меток
  • kubectl get nodes -o wide вывод списка нод кластера с ip-адресом ноды
  • kubectl describe pod <pod-name> вывод подробной информации о поде
  • kubectl get pod <pod-name> -o yaml получение конфигурации пода, с которой работает kuber
  • kubectl get serviceaccount -n kube-system вывод списка всех учетных записей служб

Прочее

  • kubectl exec podname uptime выполнение команды на поде. Если под имеет несколько контейнеров - подключается к контейнеру пода по-умолчанию. Контейнер по умолчанию – это контейнер с аннотацией kubectl.kubernetes.io/default-container. Это будет первый контейнер в pod'е, если не добавлена аннотация вручную к любому другому.
  • kubectl exec -it demo-pod -c container-name -- /bin/sh выполнение команды в определенном контейнере пода. Если нужно указать неймспейс, он указывается в начале, сразу после kubectl
  • kubectl exec -it podname -- sh(bash) вход в консоль пода, указывается или sh или bash
  • kubectl port-forward pod/myapp 9100:9100 прокидывание порта из пода (для деплоймента аналогично) <pod-name> <your-local-port>:<container-port>, сначала идет локальный порт затем порт контейнера
  • kubectl logs <pod-name> -p чтение лога пода
  • kubectl config set-context --current --namespace=<namespace-name> определение пространства имён для всех команд
  • kubectl config view --minify | grep namespace: проверка текущего пространства имен
  • kubectl describe node <node-name> проверка состояния ноды кластера
  • kubectl run -it --rm --image=mysql --restart=Never --namespace=<namespace-name> mysql-client -- mysql -h mysql -p password запуск и подключение к БД MySQL внутри kubernetes
  • kubectl run -it --rm --image=mysql --restart=Never --namespace=<namespace-name> <название клиента> -- <команда, которая будет выполнена в контейнере> запуск и подключение к БД MySQL внутри kubernetes
  • kubectl edit pod <pod-name> изменить yaml конфигурацию сущности
  • kubectl api-resources | grep deployment проверка, какие API поддерживают текущий объект Kubernetes
  • kubectl get componentstatuses проверка работоспособности компонентов кластера
  • kubectl cluster-info информация о кластере
  • kubectl get events вывод произошедших событий
  • kubectl label pod <pod-name> <label-name> добавление метки к поду