Особенности развертывания программ в Kubernetes

Kubernetes — одна из самых популярных платформ автоматизации для развертывания, масштабирования и работы контейнеров приложений в кластере хостов или узлов. Развертывание кластеров в Kubernetes на виртуальных машинах требует наличия специальных знаний, поэтому если нужна с этим помощь, можно обратиться к специалистам компании «Flant».

Что такое развертывание

Развертывание — один из объектов, используемых для запуска модулей. Лучшие практики Kubernetes поощряют использование развертываний для программ без состояния. Без развертывания нужно было бы вручную создавать, обновлять и удалять несколько модулей, что было бы утомительным и невыполнимым для многих контейнеров.

Развертывание объявляет один объект в YAML, который не только создает модули, но и гарантирует, что они обновлены и работают. Также можно с легкостью автоматически масштабировать программы с помощью развертывания на Kubernetes. Таким образом, развертывание используется для масштабирования, развертывания и отката версий программ в Pods.

Развертывание также сообщает Kubernetes, сколько копий Pod мы хотим запустить, а Kubernetes позаботится об остальных. Связанный контроллер создаст ReplicaSet из конфигурации при создании развертывания. Контроллер, связанный с ReplicaSet, создаст ряд модулей конфигурации ReplicaSet.

Преимуществами использования развертывания вместо непосредственного создания ReplicaSet:

  • возможность отслеживания истории объекта — каждое изменение через «применение» или «редактирование» будет создавать резервную копию предыдущей версии;
  • управление развертыванием и откатом — можно вернуться к конфигурации, связанной с предыдущим пунктом.

Методы создания развертывания

Существует 2 метода, которые можно использовать для создания развертывания Kubernetes. Каждый имеет свои особенности.

Императивный метод

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

Декларативный метод

В этом методе вы должны объявить все. Kubernetes просто читает определения и создает точно так, как объявлено. Чтобы использовать декларативное развертывание, необходимо создать файл YAML.