Перейти к содержанию

Шпаргалка по командам Kubernetes

link

В этой статье вы увидите не только команды для получения подробной информации об объектах, но и для создания объектов. Эта статья посвящена только командам, а не их описанию. Если вы хотите подробно ознакомиться с каждой командой, вы можете посетить официальную документацию здесь.

Эта статья станет для вас шпаргалкой по основным объектам кластера 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