Введение
Команда set в Kubernetes - это универсальный инструмент, который позволяет изменять конфигурацию существующих ресурсов Kubernetes. Эта команда позволяет делать такие настройки, как обновление образов контейнеров и настройка запросов и ограничений ресурсов, не редактируя напрямую YAML-файлы. Это упрощает управление ресурсами и повышает оперативную эффективность.
По завершении этого практического занятия (lab) вы научитесь:
- Запускать кластер Kubernetes.
- Обновлять образ контейнера в развертывании (deployment).
- Настраивать запросы и ограничения ресурсов для развертывания (deployment).
- Изменять метки (labels) и аннотации (annotations) в развертывании (deployment) с помощью соответствующих команд.
Это практическое занятие (lab) предназначено для начинающих и предполагает, что вы работаете на системе Ubuntu Linux с установленными инструментами Kubernetes. Предварительный опыт работы с Kubernetes не требуется.
Запустить кластер Kubernetes
Перед взаимодействием с ресурсами Kubernetes убедитесь, что кластер Kubernetes запущен. В рамках этого практического занятия (lab) мы будем использовать Minikube для настройки однодневного кластера Kubernetes.
Откройте терминал и запустите Minikube:
minikube startЭта команда инициализирует локальный кластер Kubernetes. Minikube автоматически назначает соответствующие ресурсы, но вы можете настроить их с помощью флагов, таких как
--cpusи--memory, если это необходимо.Проверьте, что Minikube запущен:
kubectl cluster-infoУбедитесь, что вывод команды подтверждает, что кластер работает.
Создать развертывание (Deployment)
После запуска кластера создайте простое развертывание (deployment) Kubernetes с именем hello-world, используя образ nginx.
Выполните следующую команду для создания развертывания:
kubectl create deployment hello-world --image=nginxЭта команда создает развертывание (deployment) с именем
hello-worldс одним экземпляром (replica) контейнераnginx.Проверьте, что развертывание было успешно создано:
kubectl get deploymentsПроверьте вывод, чтобы убедиться, что
hello-worldпоявилось в списке развертываний (deployments).
Исследовать команду kubectl set
Команда kubectl set предоставляет несколько подкоманд для настройки и изменения ресурсов приложений. Она помогает управлять такими конкретными аспектами, как переменные окружения, образы контейнеров и настройки ресурсов.
Выполните следующую команду, чтобы просмотреть доступные подкоманды
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.Используйте
kubectl set --help, чтобы по мере необходимости изучить дополнительные детали о каждой подкоманде.
Обновить образ контейнера
Далее обновите образ контейнера в развертывании (deployment) hello-world до определенной версии.
Используйте команду
kubectl set, чтобы обновить образ контейнера доnginx:1.19.10:kubectl set image deployment/hello-world nginx=nginx:1.19.10Эта команда обновляет контейнер
nginxв развертывании (deployment)hello-world.Проверьте обновление образа, запросив информацию об образе контейнера:
kubectl get deployment hello-world -o jsonpath='{.spec.template.spec.containers[0].image}'Убедитесь, что вывод показывает
nginx:1.19.10.
Настроить запросы и лимиты ресурсов
Управление ресурсами является важной частью развертывания приложений в Kubernetes. Установите запросы и лимиты ресурсов для развертывания (deployment) hello-world.
Настройте запросы и лимиты CPU и памяти:
kubectl set resources deployment/hello-world --limits=cpu=1,memory=512Mi --requests=cpu=500m,memory=256MiЭта команда устанавливает запросы ресурсов на
500mCPU и256Miпамяти, а лимиты - на1CPU и512Miпамяти.Проверьте настройки ресурсов, описав развертывание:
kubectl describe deployment hello-worldПроверьте разделы
LimitsиRequestsв выводе, чтобы подтвердить настройки.
Изменить метки (labels) у развертывания (Deployment)
Метки (labels) помогают категоризировать и организовать ресурсы Kubernetes. Используйте команду kubectl label для добавления или изменения меток на развертывании (deployment).
Добавьте метку
environment=developmentк развертываниюhello-world:kubectl label deployment hello-world environment=developmentЭта команда добавляет новую метку к развертыванию.
Проверьте, что метка была применена:
kubectl get deployment hello-world --show-labelsПроверьте столбец
LABELSна наличие меткиenvironment=development.
Обновить аннотации (annotations) у развертывания (Deployment)
Аннотации (annotations) предоставляют метаданные для ресурсов Kubernetes. Используйте команду kubectl annotate для добавления или обновления аннотаций на развертывании (deployment).
Добавьте аннотацию
owner=team-alphaк развертываниюhello-world:kubectl annotate deployment hello-world owner=team-alphaЭта команда добавляет аннотацию к развертыванию.
Проверьте, что аннотация была применена:
kubectl describe deployment hello-worldПроверьте раздел
Annotationsна наличиеowner=team-alpha.
Резюме
В этом практическом занятии (lab) вы научились эффективно использовать команду set в Kubernetes для управления развертываниями (deployments). Вы:
- Запустили кластер Kubernetes.
- Создали развертывание.
- Обновили образ контейнера.
- Настроили запросы и лимиты ресурсов.
- Изменили метки (labels) и аннотации (annotations) с помощью соответствующих команд.
Эти навыки являются важными для эффективного управления приложениями в Kubernetes.


