Якщо ви новачок у Kubernetes, освоєння команди kubectl
— це перший крок до того, щоб управляти кластерами як професіонал. Цей швидкий посібник допоможе вам вивчити найнеобхідніші команди, які повинен знати кожен початківець.
І не забувайте, для операцій, специфічних для певного простору імен, використовуйте прапор -n
, щоб спростити ваш робочий процес.
Керування просторами імен
Простори імен дозволяють організовувати та керувати ресурсами всередині вашого кластера.
Переглянути всі простори імен:
kubectl get namespaces
Створити новий простір імен:
kubectl create namespace
Видалити простір імен:
kubectl delete namespace
Встановити за замовчуванням простір імен для поточного контексту:
kubectl config set-context --current --namespace=
Операції з Pod
Pods є основними одиницями розгортання в Kubernetes.
Переглянути всі pods в поточному просторі імен:
kubectl get pods
Видалити конкретний pod:
kubectl delete pod
Виконати команду всередині pod
kubectl exec -it --
Приклад:
kubectl exec -it -- bash
Вивести змінні середовища pod:
kubectl exec -it -- env
Фільтрувати pods за міткою:
kubectl get pods -l =
Приклад:
kubectl get pods -l app=webapp
Створити pod із конкретним образом:
kubectl run --image= --restart=Never
Приклад:
kubectl run --image= --restart=Never
Згенерувати YAML для pod без його створення:
kubectl run --image= --restart=Never --dry-run=client -o yaml
Приклад:
kubectl run web --image=nginx --restart=Never --dry-run=client -o yaml
Перенаправити порт pod на localhost:
kubectl port-forward pod/ :
Приклад:
kubectl port-forward pod/web 8080:80
Керування розгортанням
Розгортання керують розгортанням і масштабуванням наборів pod.
Переглянути всі розгортання:
kubectl get deployments
Створити розгортання:
kubectl create deployment --image=
Приклад:
kubectl create deployment webapp --image=nginx
Оновити образ розгортання:
kubectl set image deployment/ =
Приклад:
kubectl set image deployment/webapp nginx=nginx:1.19
Масштабувати розгортання
kubectl scale deployment/ --replicas=
Приклад:
kubectl scale deployment/webapp --replicas=3
Повернути розгортання до попередньої версії:
kubectl rollout undo deployment/
Приклад:
kubectl rollout undo deployment/webapp
Керування сервісами
Сервіси відкривають ваші додатки для мережі.
Переглянути всі сервіси:
kubectl get services
Створити сервіс для відкриття розгортання:
kubectl expose deployment/ --port= --target-port= --type=
Приклад:
kubectl expose deployment/webapp --port=80 --target-port=8080 --type=LoadBalancer
Видалити сервіс
kubectl delete service
Перенаправити порт для сервісу
kubectl port-forward service/myservice 8443:https
Керування ConfigMap та Secret
ConfigMap та Secret керують конфігураційними даними та чутливою інформацією.
Створити ConfigMap з файлу:
kubectl create configmap --from-file=
Приклад:
kubectl create configmap app-config --from-file=config.yaml
Створити Secret з літеральних значень:
kubectl create secret generic --from-literal==
Приклад:
kubectl create secret generic db-secret --from-literal=username=admin --from-literal=password=secret
Переглянути ConfigMap:
kubectl get configmap -o yaml
Переглянути Secret (кодується в base64):
kubectl get secret -o yaml
Логи та події
Моніторинг логів та подій критично важливий для налагодження.
Переглянути логи pod:
kubectl logs
Стримити логи pod:
kubectl logs -f
```
Переглянути події в поточному просторі імен:
kubectl get events
Керування вузлами
Вузли — це робочі машини в кластері Kubernetes.
Переглянути всі вузли:
kubectl get nodes
Переглянути детальну інформацію про вузол:
kubectl describe node
Позначити вузол як не планований (cordon):
kubectl cordon
Позначити вузол як планований (uncordon):
kubectl uncordon
Вивести вузол з експлуатації (безпечно видалити всі pods):
kubectl drain --ignore-daemonsets --delete-emptydir-data
Порада
Для будь-якої операції, специфічної для простору імен, завжди додавайте прапор -n
.
Наприклад:
kubectl get pods -n dev
Готові почати?
Ці команди — ваш перший крок у потужний світ Kubernetes. Почніть експериментувати з ними вже сьогодні, і ви наблизитесь до того, щоб стати експертом Kubernetes!
Для більше команд, будь ласка, зверніться до: https://kubernetes.io/docs/reference/kubectl/
Перекладено з: Essential kubectl Commands for Beginners