Kubernetes — развертывания

Опубликовано: 18 Февраля, 2023

Предварительное условие: Kubernetes

Kubernetes — это инструмент управления контейнерами с открытым исходным кодом, который автоматизирует развертывание контейнеров, их масштабирование, демасштабирование и балансировку нагрузки контейнеров (также называемое инструментом оркестрации контейнеров). Он написан на Golang и имеет огромное сообщество, потому что сначала он был разработан Google, а затем передан в дар CNCF (Фонд облачных вычислений). Развертывание — это, по сути, уровень абстракции над модулями. Это как план создания стручков.

В основном состоит из 3-х компонентов:

  1. метаданные: состоят из имени и меток файла конфигурации. Метки используются для установления связи между развертыванием и службами.
  2. спецификация: он состоит из информации о количестве реплик, метках селектора и шаблоне, который является планом для модулей. Сам шаблон похож на файл конфигурации для модулей и состоит из метаданных и спецификаций для модулей, в которых хранится информация о контейнерах, которые будут использоваться в модуле, образ, который будет использоваться для создания контейнера, а также имя и порты контейнера.
  3. статус: этот компонент автоматически генерируется и добавляется Kubernetes. Это основа функции самовосстановления Kubernetes. Если желаемый статус и фактический статус развертывания не совпадают, Kubernetes исправляет модуль и сопоставляет его с желаемым статусом.

Создание развертывания веб-сервера Nginx в Kubernetes:

В этом руководстве мы будем использовать minikube для использования Kubernetes на нашем локальном компьютере. Файл конфигурации развертывания для Nginx будет выглядеть так:

Теперь сначала откройте каталог, в котором вы создали файл nginx.yaml, в своем терминале и создайте развертывание с помощью команды:

$ kubectl apply -f nginx.yaml

Теперь проверьте состояние вашего развертывания, готово оно или нет, выполнив команду

$ kubectl get all

Следовательно, мы успешно развернули созданное развертывание для Nginx.

Обновление развертывания Kubernetes:

Чтобы обновить развертывание Kubernetes, мы можем просто обновить его файл конфигурации двумя способами:

Способ 1: использование команды редактирования kubectl из терминала

$ kubectl edit deployment deployment-name

Теперь вы можете отредактировать конфигурацию развертывания, нажав « для вставки, а после редактирования вы можете просто нажать клавишу выхода, а затем «: wq» , чтобы сохранить изменения и выйти.

Способ 2: обновление конфигурации напрямую

Вы можете открыть файл конфигурации в среде IDE, такой как VS Code, отредактировать там конфигурацию и применить ее с помощью команды

$ kubectl apply -f deployment_config.yaml

Допустим, в этом случае мы обновляем порт контейнера с 80 на 800.

Преимущества развертывания Kubernetes:

  • Kubernetes Deployment помогает в оркестровке контейнеров, которая управляет контейнерами в модулях.
  • Улучшает микросервисную архитектуру.
  • Автомасштабирование
  • Автоматические развертывания и откаты
  • Балансировки нагрузки

Варианты использования развертываний Kubernetes:

  • Развертывание ReplicaSet: развертывание Kubernetes создает набор реплик, который содержит информацию о количестве pos, которые должны быть созданы в фоновом режиме.
  • Объявление нового состояния модулей: при обновлении спецификации шаблона модуля создается новый набор реплик, и развертывание перемещает модули из старого набора реплик в новый набор реплик.
  • Масштабирование: развертывание можно настроить для увеличения нагрузки.
  • Статус развертывания: его можно использовать, чтобы проверить, не застряло ли где-то развертывание, сопоставив текущий статус с желаемым статусом.
  • Удаление старых наборов реплик , которые больше не требуются.