Kubernetes — развертывания
Предварительное условие: Kubernetes
Kubernetes — это инструмент управления контейнерами с открытым исходным кодом, который автоматизирует развертывание контейнеров, их масштабирование, демасштабирование и балансировку нагрузки контейнеров (также называемое инструментом оркестрации контейнеров). Он написан на Golang и имеет огромное сообщество, потому что сначала он был разработан Google, а затем передан в дар CNCF (Фонд облачных вычислений). Развертывание — это, по сути, уровень абстракции над модулями. Это как план создания стручков.
В основном состоит из 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
Теперь вы можете отредактировать конфигурацию развертывания, нажав « i» для вставки, а после редактирования вы можете просто нажать клавишу выхода, а затем «: wq» , чтобы сохранить изменения и выйти.
Способ 2: обновление конфигурации напрямую
Вы можете открыть файл конфигурации в среде IDE, такой как VS Code, отредактировать там конфигурацию и применить ее с помощью команды
$ kubectl apply -f deployment_config.yaml
Допустим, в этом случае мы обновляем порт контейнера с 80 на 800.
Преимущества развертывания Kubernetes:
- Kubernetes Deployment помогает в оркестровке контейнеров, которая управляет контейнерами в модулях.
- Улучшает микросервисную архитектуру.
- Автомасштабирование
- Автоматические развертывания и откаты
- Балансировки нагрузки
Варианты использования развертываний Kubernetes:
- Развертывание ReplicaSet: развертывание Kubernetes создает набор реплик, который содержит информацию о количестве pos, которые должны быть созданы в фоновом режиме.
- Объявление нового состояния модулей: при обновлении спецификации шаблона модуля создается новый набор реплик, и развертывание перемещает модули из старого набора реплик в новый набор реплик.
- Масштабирование: развертывание можно настроить для увеличения нагрузки.
- Статус развертывания: его можно использовать, чтобы проверить, не застряло ли где-то развертывание, сопоставив текущий статус с желаемым статусом.
- Удаление старых наборов реплик , которые больше не требуются.