Памятка по командам Kubernetes
На этой странице
- Предварительные условия
- Что мы увидим?
- Важные команды
- Информация о кластере
- Информация о конфигурации
- Пространства имен
- Пакеты
- Развертывания
- Услуги
- Управление объектами из файлов .yaml/.yml
При работе в Kubernetes очень важно знать хотя бы основные команды. В этой статье вы найдете команды, которые чаще всего нужны при работе с кластером. Если вы знаете команды, вы можете избавиться от написания файлов определения объектов для простых объектов и последующего создания объектов с использованием этих файлов. Вместо этого вы можете использовать команды и просматривать объекты, созданные за доли секунды.
В этой статье вы увидите команды не только для получения сведений об объектах, но и для создания объектов. Эта статья посвящена только командам, а не их описанию. Если вы хотите подробно узнать о каждой команде, вы можете посетить официальную документацию здесь.
Эта статья станет для вас шпаргалкой по основным объектам кластера Kubernetes.
Предпосылки
- Основное понимание Kubernetes
- Кластер Kubernetes по крайней мере с 1 рабочим узлом.
Если вы хотите научиться создавать кластер Kubernetes, нажмите здесь. Это руководство поможет вам создать кластер Kubernetes с 1 мастером и 2 узлами на инстансах AWS Ubuntu EC2.
Что мы увидим?
- Важные команды
- Информация о кластере
- Информация о конфигурации
- Пространство имен
- Под
- Развертывания
- Услуги
- Управление объектами из файлов .yaml/.yml
Важные команды
Информация о кластере
Распечатать информацию о версии клиента и сервера
kubectl version
Распечатайте поддерживаемые ресурсы API на сервере
kubectl api-resources
Распечатать поддерживаемые версии API на сервере в виде \группа/версия\
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
Задайте контекст, здесь [email — название контекста.
kubectl config use-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
Получить пакеты из указанного пространства имен
kubectl get pods -namespace=my-namespace
Создать модуль
kubectl run my-pod-1 --image=nginx:latest --dry-run
посмотреть, как будет обрабатываться пакет
kubectl run my-pod-1 --image=nginx:latest --dry-run=client
Создать модуль в указанном пространстве имен
kubectl run my-pod-2 --image=nginx:latest --namespace=my-namespace
Создайте модуль с меткой к нему
kubectl run nginx --image=nginx -l --labels=app=test
Получить все модули с выводом ярлыка
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
Получить журналы пода в указанном пространстве имен
kubectl logs my-pod-2 --namespace=my-namespace
Опишите модуль
kubectl describe pod my-pod-1
Описать модуль в указанном пространстве имен
kubectl describe pods my-pod-1 --namespace=my-namespace
Удалить модуль из текущего пространства имен
kubectl delete pod my-pod-1
Удалить модуль из указанного пространства имен
kubectl delete pods my-pod-1 --namespace=my-namespace
Развертывания
Получить список развертываний из текущего пространства имен
kubectl get deployments
Получить список развертываний из указанного пространства имен
kubectl get deployments --namespace=my-namespace
Создать развертывание
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
Услуги
Сначала создайте модуль с меткой app=myapp.
Затем:
Создайте модуль с меткой
kubectl run my-pod --image=nginx --labels=app=myapp
Создайте службу типа NodePort, которая будет использовать метки модулей для селектора, но нам нужно указать тип, поэтому сначала создайте файл определения, а затем создайте службу.
kubectl expose pod my-pod --port=80 --name nginx-service --type=NodePort --dry-run=client -o yaml
Создайте службу, которая будет иметь тип типа NodePort, но у нее не будет селектора в качестве моего приложения.
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
Сначала создайте файл определения для модуля.
Создайте файл определения для модуля
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. Команды в Kubernetes не ограничиваются только этими командами, но эти команды похожи на команды, которые необходимо знать.