Поиск по сайту:

Памятка по командам Kubernetes


На этой странице

  1. Предварительные условия
  2. Что мы увидим?
  3. Важные команды
    1. Информация о кластере
    2. Информация о конфигурации
    3. Пространства имен
    4. Пакеты
    5. Развертывания
    6. Услуги
    7. Управление объектами из файлов .yaml/.yml

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

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

    Эта статья станет для вас шпаргалкой по основным объектам кластера Kubernetes.

    Предпосылки

    1. Основное понимание Kubernetes
    2. Кластер Kubernetes по крайней мере с 1 рабочим узлом.
      Если вы хотите научиться создавать кластер Kubernetes, нажмите здесь. Это руководство поможет вам создать кластер Kubernetes с 1 мастером и 2 узлами на инстансах AWS Ubuntu EC2.

    Что мы увидим?

    1. Важные команды
      1. Информация о кластере
      2. Информация о конфигурации
      3. Пространство имен
      4. Под
      5. Развертывания
      6. Услуги
      7. Управление объектами из файлов .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 не ограничиваются только этими командами, но эти команды похожи на команды, которые необходимо знать.