Шпаргалка по командам Kubernetes
В этой статье вы увидите не только команды для получения подробной информации об объектах, но и для создания объектов. Эта статья посвящена только командам, а не их описанию. Если вы хотите подробно ознакомиться с каждой командой, вы можете посетить официальную документацию здесь.
Эта статья станет для вас шпаргалкой по основным объектам кластера Kubernetes.
Важные команды¶
Информация о кластере¶
Вывод информации о версии клиента и сервера
Вывод поддерживаемых ресурсов API на сервере Вывод поддерживаемых версий API на сервере, в виде «group/version» Получение информации о кластереПолучение списка узлов в кластере
Получение информации о главном узле Получение подробной информации о главных узлахИнформация о конфигурации¶
Отображать всех настроек kubeconfig
Просмотр текущего контекста Показать кластеры, определенные в kubeconfig Описать один или много контекстовПространства имен¶
Получить все пространства имен
Получить информацию о пространстве имен в формате yaml Описать пространство имен по умолчанию Создать новое пространство имен Удалить пространство именМодули¶
Получить модули из текущего пространства имен
Получать модули из всех пространств имен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