При работе с Kubernetes очень важно знать хотя бы основные команды. В этой статье вы найдете команды, которые чаще всего нужны при работе с кластером.
В этой статье вы увидите не только команды для получения подробной информации об объектах, но и для создания объектов. Эта статья посвящена только командам, а не их описанию. Если вы хотите подробно ознакомиться с каждой командой, вы можете посетить официальную документацию здесь.
Эта статья станет для вас шпаргалкой по основным объектам кластера Kubernetes.
Важные команды
Информация о кластере
Вывод информации о версии клиента и сервера
kubectl version
Вывод поддерживаемых ресурсов API на сервере
kubectl api-resources
Вывод поддерживаемых версий API на сервере, в виде «group/version»
kubectl api-versions
Получение информации о кластере
kubectl cluster-info
Получение списка узлов в кластере
kubectl get nodes
Получение информации о главном узле
kubectl get nodes master -o wide
Получение подробной информации о главных узлах
kubectl describe nodes master
Информация о конфигурации
Отображать всех настроек kubeconfig
kubectl config view
Просмотр текущего контекста
kubectl config current-context
Показать кластеры, определенные в kubeconfig
kubectl config get-clusters
Описать один или много контекстов
kubectl config get-contexts
Пространства имен
Получить все пространства имен
kubectl get namespaces
Получить информацию о пространстве имен в формате yaml
kubectl get namespaces -...o yaml
Описать пространство имен по умолчанию
kubectl describe namespace default
Создать новое пространство имен
kubectl create namespace my-namespace
Удалить пространство имен
kubectl delete namespace my-namespace
Модули
Получить модули из текущего пространства имен
kubectl get pods
Получать модули из всех пространств имен
kubectl get pods --all-namespaces
Получите pods из указанного пространства имен
kubectl get pods -namespace=my-namespace
Создать модуль
kubectl run my-pod-1 --image=nginx:latest --dry-run
Посмотреть, как будет обрабатываться pod
kubectl run my-pod-1 --image=nginx:latest --dry-run=client
Создать pod в указанном пространстве имен
kubectl run my-pod-2 --image=nginx:latest --namespace=my-namespace
Создать pod с меткой к нему
kubectl run nginx --image=nginx -l --labels=app=test
Получить все pod с выводом меток
kubectl get pods...-show-labels
Получить капсулы с расширенным/широким выводом
kubectl get pods -o wide
Перечислить капсулы в отсортированном порядке
kubectl get pods --sort-by=.metadata.name
Получение журналов стручка
kubectl logs my-pod-1
Получение стручков в указанном пространстве имен с расширенным/широким выводом
kubectl get pods my-pod-2 --namespace=my-namespace -o wide
Получите журналы pod в указанном пространстве имен
kubectl logs my-pod-2 --namespace=my-namespace
Опишите pod
kubectl describe pod my-pod-1
Описать pod в указанном пространстве имен
kubectl describe pods my-pod-1 --namespace=my-namespace
Удалить pod из текущего пространства имен
kubectl delete pod my-pod-1
Удалить pod из указанного пространства имен
kubectl delete pods my-pod-1 --namespace=my-namespace
Развертывания
Получение списка развертываний из текущего пространства имен
kubectl get deployments
Получение списка развертываний из указанного пространства имен
kubectl get deployments --namespace=my-пространство имен
Создать развертывание
kubectl create deployment my-deployment-1 --image=nginx
Получить указанное развертывание
kubectl get deployment my-deployment-1
Получить указанное развертывание с его метками
kubectl get deployment my-deployment-1 --show-labels
Опишите указанное развертывание
kubectl describe deployments my-deployment-1
Получите подробную информацию о развертывании в формате yaml
kubectl get deployment my-deployment-1 -o yaml
Измените образ в существующем развертывании
kubectl set image deployment my-deployment-1 nginx=nginx:1.16.1
Просмотр истории развертывания
kubectl rollout history deployment my-deployment-1
Отмена предыдущего развертывания
kubectl rollout undo deployment my-deployment-1
Возврат к определенной версии истории развертывания
kubectl rollout undo deployment my-deployment-1 --to-revision=2
Показать статус развертывания
kubectl rollout status deployment my-deployment-1
Перезапустить ресурс
kubectl rollout restart deployment my-deployment-1
Масштабировать развертывание до 3
kubectl scale --replicas=3 deployment my-deployment-1
Масштабировать с текущего количества до нужного
kubectl scale --current-replicas=3 --replicas=5 deployment my-deployment-1
Это создаст HPA (Horizontal Pod Aotuscaler)
kubectl autoscale deployment my-deployment-1 --min=2 --max=10
Services
Сначала создайте pod с меткой app=myapp.
Затем:
Создаем pod с меткой
kubectl run my-pod --image=nginx --labels=app=myapp
Создаем сервис типа NodePort, который будет использовать метки pod для селектора, но нам нужно указать тип, поэтому сначала создайте файл определения, а затем создайте сервис
kubectl expose pod my-pod --port=80 --name nginx-service --type=NodePort --dry-run=client -o yaml
Создайте сервис, который будет иметь тип NodePort, но у него не будет селектора как у my-app
kubectl create service nodeport nginx --tcp=80:80 --node-port=30080 --dry-run=client -o yaml
Получить службы из текущего контекста
kubectl get service
Получить подробную информацию о службах
kubectl get service -o wide
Получить службы с метками на них
kubectl get service --show-labels
Получите сервисы из всех пространств имен
kubectl get services --all-namespaces
Опишите сервис, чтобы узнать о нем больше
kubectl describe service nginx-service
Получите конкретный сервис
kubectl get service nginx-service
Удалите сервис
kubectl delete service nginx-service
Управление объектами из файлов .yaml/.yml
Сначала создайте файл определения для pod
Создайте файл определения для pod
kubectl run mypod --image=nginx --dry-run=client -o yaml > my-pod.yml
Создайте объект
kubectl create -f my-pod.yml
Удалите объект
kubectl delete -f my-pod.yml
Заключение
В этой статье мы рассмотрели важные команды, которые необходимы при работе с Kubernetes.
Комментарии (0)