Kubernetes — это платформа оркестрации контейнеров с открытым исходным кодом, которая автоматизирует развертывание, масштабирование и управление контейнерными приложениями. Он предназначен для упрощения управления распределенными системами и предоставляет гибкую архитектуру для запуска приложений в контейнерах.
Архитектура Kubernetes состоит из нескольких ключевых компонентов, которые работают вместе, обеспечивая эффективное развертывание контейнеров и управление ими. Вот некоторые из основных компонентов и методов, используемых в архитектуре Kubernetes:
-
Главный узел: Главный узел отвечает за управление кластером и координацию всех действий. Он включает в себя такие компоненты, как сервер API, диспетчер контроллеров, планировщик и т. д. Сервер API действует как центральная точка управления кластером, а диспетчер контроллера обеспечивает желаемое состояние и обрабатывает операции на уровне кластера. Планировщик назначает рабочие нагрузки рабочим узлам на основе доступности ресурсов и ограничений. Etcd – это распределенное хранилище значений ключей, используемое для хранения данных кластера.
-
Рабочий узел. Рабочие узлы — это машины, на которых запускаются контейнерные приложения. На каждом рабочем узле размещается несколько модулей — наименьших развертываемых модулей в Kubernetes. Поды инкапсулируют один или несколько контейнеров, совместно используют ресурсы и могут взаимодействовать друг с другом через общее сетевое пространство имен.
-
Kubelet: Kubelet — это агент, который работает на каждом рабочем узле и взаимодействует с главным узлом. Он управляет состоянием узла и обеспечивает работоспособность и работоспособность контейнеров.
-
Среда выполнения контейнера. Kubernetes поддерживает несколько сред выполнения контейнеров, таких как Docker, Containerd и CRI-O. Среда выполнения контейнера отвечает за получение образов контейнеров, создание контейнеров и управление ими, а также обеспечение изоляции между контейнерами.
-
Сеть: Kubernetes предоставляет сетевую модель, которая позволяет подам взаимодействовать друг с другом внутри кластера. Он назначает каждому модульу уникальный IP-адрес и управляет сетевой маршрутизацией и балансировкой нагрузки.
-
Службы. Службы Kubernetes позволяют предоставлять доступ к приложениям, работающим в модулях, другим службам или внешним клиентам. Службы предоставляют стабильную конечную точку для доступа к приложению и могут распределять трафик между несколькими модулями.
-
Тома: Kubernetes поддерживает различные типы томов для постоянного хранения данных. Тома позволяют хранить данные независимо от контейнеров и при необходимости прикреплять их к модулям.
-
Контроллеры. Kubernetes включает в себя различные контроллеры, которые помогают поддерживать желаемое состояние кластера. Например, контроллер ReplicaSet обеспечивает запуск желаемого количества реплик модулей, а контроллер развертывания обеспечивает декларативные обновления и откат развертываний приложений.
-
Метки и селекторы. Kubernetes использует метки и селекторы для организации ресурсов и управления ими. Метки представляют собой пары «ключ-значение», прикрепленные к таким объектам, как модули, службы или развертывания, а селекторы используются для фильтрации и выбора ресурсов на основе их меток.
Подводя итог, можно сказать, что архитектура Kubernetes включает в себя главные и рабочие узлы, такие компоненты, как сервер API, диспетчер контроллеров и планировщик, среды выполнения контейнеров, сети, службы, тома, контроллеры и метки/селекторы.