Skip to content

Команди kubectl пояснені

Повсякденні команди kubectl, згруповані за завданнями: читання кластера, огляд робочих навантажень, застосування та відкат змін, відкриття сервісів, керування вузлами та створення об'єктів конфігурації. Кожен рядок поєднує команду з реалістичним викликом.

kubectl — це ваш інструмент керування кластером Kubernetes. Модель декларативна: зазвичай ви застосовуєте маніфест (apply -f), а не створюєте об'єкти в імперативний спосіб, а потім читаєте результат (get, describe, logs). Наведені нижче команди охоплюють щоденну роботу; додавайте прапорець простору імен (-n name), якщо ви не в стандартному просторі імен.

Довідкова таблиця · 59 записи
59 of 59 rows
Кластер і контекст
Показує, де працюють площина керування та основні сервіси.kubectl cluster-info
Перелічує кластери та простори імен, між якими можна перемикатися.kubectl config get-contexts
Перемикає на інший контекст кластера або простору імен.kubectl config use-context my-prod
Задає стандартний простір імен поточного контексту.kubectl config set-context --current --namespace=staging
Перейменовує збережений контекст у вашому kubeconfig.kubectl config rename-context old-name prod
Перелічує всі типи ресурсів, які знає кластер.kubectl api-resources
Виводить версії Kubernetes клієнта та сервера.kubectl version
Показує поля, які підтримує ресурс, зчитані зі схеми API.kubectl explain pod.spec.containers
Перевіряє, чи може поточний користувач виконати дану дію.kubectl auth can-i delete pods
Огляд робочих навантажень
Перелічує pod та їхній стан; додайте -o wide, щоб бачити вузол і IP.kubectl get pods -A
Перелічує типові ресурси простору імен за один виклик.kubectl get all
Додає колонки вузла й IP до будь-якої команди get.kubectl get pods -o wide
Виводить ресурс як повний YAML-маніфест, що стоїть за ним.kubectl get deploy/web -o yaml
Перелічує deployment і кількість готових реплік.kubectl get deployments
Перелічує statefulset та їхні готові репліки.kubectl get statefulsets
Перелічує пакетні job і заплановані cronjob.kubectl get jobs,cronjobs
Показує події, мітки та стан одного pod.kubectl describe pod web-abc
Показує ємність вузла, його стани та запущені pod.kubectl describe node node-1
Виводить stdout pod; -f — стежити за виводом, --previous — лог останнього падіння.kubectl logs -f web-abc
Виконує команду всередині запущеного pod.kubectl exec -it web-abc -- sh
CPU та пам'ять у реальному часі для pod або вузлів (потрібен metrics-server).kubectl top pods
Перелічує нещодавні події, як-от невдалі завантаження образів і backoff.kubectl get events -A --sort-by=.lastTimestamp
Перелічує правила ingress та адреси їхніх балансувальників навантаження.kubectl get ingress
Копіює файли між вашою машиною та запущеним pod.kubectl cp web-abc:/var/log/app.log ./app.log
Блокується, доки ресурс не виконає умову.kubectl wait --for=condition=ready pod -l app=web
Запускає одноразовий pod з образу, без маніфесту.kubectl run debug --rm -it --image=busybox -- sh
Застосування, масштабування, розгортання
Показує, що змінив би apply, нічого не змінюючи.kubectl diff -f deploy.yaml
Створює або оновлює ресурси з файлу маніфесту.kubectl apply -f deploy.yaml
Застосовує маніфести та видаляє об'єкти, яких у них більше немає.kubectl apply -f dir/ --prune -l app=web
Відкриває живий ресурс у вашому редакторі та застосовує при збереженні.kubectl edit deploy/web
Змінює кілька полів живого ресурсу.kubectl patch deploy/web --patch-file fix.json
Спрямовує контейнери deployment на новий образ.kubectl set image deploy/web web=nginx:1.27
Замінює об'єкт, видаляючи та створюючи його знову за потреби.kubectl replace --force -f deploy.yaml
Видаляє ресурси, оголошені у файлі маніфесту.kubectl delete -f deploy.yaml
Змінює кількість реплік deployment.kubectl scale deploy/web --replicas=4
Спостерігає, як rollout завершується або провалюється.kubectl rollout status deploy/web
Перелічує ревізії, через які пройшов rollout.kubectl rollout history deploy/web
Перезапускає кожен pod deployment по черзі.kubectl rollout restart deploy/web
Відкочує deployment до попередньої ревізії.kubectl rollout undo deploy/web
Сервіси та мережа
Перелічує сервіси, їхній тип і cluster IP.kubectl get svc
Показує, які IP pod наразі обслуговують кожен сервіс.kubectl get endpoints web
Створює сервіс перед набором pod; --type=NodePort або LoadBalancer сягає за межі кластера.kubectl expose deploy/web --port=80
Показує адресу балансувальника навантаження за кожним ingress (alpha).kubectl ingress status -A
Перелічує політики, що обмежують трафік pod.kubectl get networkpolicies
Прокладає тунель локального порта до pod або сервісу.kubectl port-forward svc/web 8080:80
Вузли та обслуговування
Перелічує вузли кластера та їхній стан.kubectl get nodes -o wide
Позначає вузол непридатним для планування (без нових pod).kubectl cordon node-1
Знову позначає вузол придатним для планування.kubectl uncordon node-1
Виселяє pod з вузла та позначає його непридатним для планування.kubectl drain node-1 --ignore-daemonsets
Додає або видаляє taint, що відштовхує pod від вузла.kubectl taint node node-1 key=value:NoSchedule
Видаляє застряглий pod одразу, пропускаючи коректне завершення.kubectl delete pod web-abc --grace-period=0 --force
Об'єкти та конфігурація
Створює новий простір імен для області дії ресурсів.kubectl create namespace staging
Перелічує простори імен та їхній стан.kubectl get namespaces
Зберігає ключі або файли конфігурації як об'єкт кластера.kubectl create configmap app --from-file=config.yaml
Перелічує configmap у просторі імен.kubectl get configmaps
Зберігає пароль або сертифікат як secret.kubectl create secret generic db --from-literal=password=s3cret
Перелічує secret у просторі імен.kubectl get secrets
Додає або видаляє мітку на ресурсі.kubectl label pod web-abc tier=backend
Додає метадані, які selector не може зіставити.kubectl annotate deploy/web release=july