Команда Kubernetes Set

KubernetesBeginner
Практиковаться сейчас

Введение

Команда set в Kubernetes - это универсальный инструмент, который позволяет изменять конфигурацию существующих ресурсов Kubernetes. Эта команда позволяет делать такие настройки, как обновление образов контейнеров и настройка запросов и ограничений ресурсов, не редактируя напрямую YAML-файлы. Это упрощает управление ресурсами и повышает оперативную эффективность.

По завершении этого практического занятия (lab) вы научитесь:

  • Запускать кластер Kubernetes.
  • Обновлять образ контейнера в развертывании (deployment).
  • Настраивать запросы и ограничения ресурсов для развертывания (deployment).
  • Изменять метки (labels) и аннотации (annotations) в развертывании (deployment) с помощью соответствующих команд.

Это практическое занятие (lab) предназначено для начинающих и предполагает, что вы работаете на системе Ubuntu Linux с установленными инструментами Kubernetes. Предварительный опыт работы с Kubernetes не требуется.

Запустить кластер Kubernetes

Перед взаимодействием с ресурсами Kubernetes убедитесь, что кластер Kubernetes запущен. В рамках этого практического занятия (lab) мы будем использовать Minikube для настройки однодневного кластера Kubernetes.

  1. Откройте терминал и запустите Minikube:

    minikube start

    Эта команда инициализирует локальный кластер Kubernetes. Minikube автоматически назначает соответствующие ресурсы, но вы можете настроить их с помощью флагов, таких как --cpus и --memory, если это необходимо.

  2. Проверьте, что Minikube запущен:

    kubectl cluster-info

    Убедитесь, что вывод команды подтверждает, что кластер работает.

Создать развертывание (Deployment)

После запуска кластера создайте простое развертывание (deployment) Kubernetes с именем hello-world, используя образ nginx.

  1. Выполните следующую команду для создания развертывания:

    kubectl create deployment hello-world --image=nginx

    Эта команда создает развертывание (deployment) с именем hello-world с одним экземпляром (replica) контейнера nginx.

  2. Проверьте, что развертывание было успешно создано:

    kubectl get deployments

    Проверьте вывод, чтобы убедиться, что hello-world появилось в списке развертываний (deployments).

Исследовать команду kubectl set

Команда kubectl set предоставляет несколько подкоманд для настройки и изменения ресурсов приложений. Она помогает управлять такими конкретными аспектами, как переменные окружения, образы контейнеров и настройки ресурсов.

  1. Выполните следующую команду, чтобы просмотреть доступные подкоманды kubectl set:

    kubectl set -h

    Вы увидите следующий вывод:

    Configure application resources.
    
    These commands help you make changes to existing application resources.
    
    Available Commands:
      env              Update environment variables on a pod template
      image            Update the image of a pod template
      resources        Update resource requests/limits on objects with pod templates
      selector         Set the selector on a resource
      serviceaccount   Update the service account of a resource
      subject          Update the user, group, or service account in a role binding or cluster role binding
    
    Usage:
      kubectl set SUBCOMMAND [options]
    
    Use "kubectl --help" for more information about a given command. Use "kubectl options" for a list of global command-line options (applies to all commands).

    Просмотрите доступные подкоманды и их описания, чтобы понять, как можно использовать kubectl set.

  2. Используйте kubectl set --help, чтобы по мере необходимости изучить дополнительные детали о каждой подкоманде.

Обновить образ контейнера

Далее обновите образ контейнера в развертывании (deployment) hello-world до определенной версии.

  1. Используйте команду kubectl set, чтобы обновить образ контейнера до nginx:1.19.10:

    kubectl set image deployment/hello-world nginx=nginx:1.19.10

    Эта команда обновляет контейнер nginx в развертывании (deployment) hello-world.

  2. Проверьте обновление образа, запросив информацию об образе контейнера:

    kubectl get deployment hello-world -o jsonpath='{.spec.template.spec.containers[0].image}'

    Убедитесь, что вывод показывает nginx:1.19.10.

Настроить запросы и лимиты ресурсов

Управление ресурсами является важной частью развертывания приложений в Kubernetes. Установите запросы и лимиты ресурсов для развертывания (deployment) hello-world.

  1. Настройте запросы и лимиты CPU и памяти:

    kubectl set resources deployment/hello-world --limits=cpu=1,memory=512Mi --requests=cpu=500m,memory=256Mi

    Эта команда устанавливает запросы ресурсов на 500m CPU и 256Mi памяти, а лимиты - на 1 CPU и 512Mi памяти.

  2. Проверьте настройки ресурсов, описав развертывание:

    kubectl describe deployment hello-world

    Проверьте разделы Limits и Requests в выводе, чтобы подтвердить настройки.

Изменить метки (labels) у развертывания (Deployment)

Метки (labels) помогают категоризировать и организовать ресурсы Kubernetes. Используйте команду kubectl label для добавления или изменения меток на развертывании (deployment).

  1. Добавьте метку environment=development к развертыванию hello-world:

    kubectl label deployment hello-world environment=development

    Эта команда добавляет новую метку к развертыванию.

  2. Проверьте, что метка была применена:

    kubectl get deployment hello-world --show-labels

    Проверьте столбец LABELS на наличие метки environment=development.

Обновить аннотации (annotations) у развертывания (Deployment)

Аннотации (annotations) предоставляют метаданные для ресурсов Kubernetes. Используйте команду kubectl annotate для добавления или обновления аннотаций на развертывании (deployment).

  1. Добавьте аннотацию owner=team-alpha к развертыванию hello-world:

    kubectl annotate deployment hello-world owner=team-alpha

    Эта команда добавляет аннотацию к развертыванию.

  2. Проверьте, что аннотация была применена:

    kubectl describe deployment hello-world

    Проверьте раздел Annotations на наличие owner=team-alpha.

Резюме

В этом практическом занятии (lab) вы научились эффективно использовать команду set в Kubernetes для управления развертываниями (deployments). Вы:

  • Запустили кластер Kubernetes.
  • Создали развертывание.
  • Обновили образ контейнера.
  • Настроили запросы и лимиты ресурсов.
  • Изменили метки (labels) и аннотации (annotations) с помощью соответствующих команд.

Эти навыки являются важными для эффективного управления приложениями в Kubernetes.