Все, что вы знаете о монолитной архитектуре, но когда мы мигрируем в архитектуру Micro-Service, где все происходит в соответствии с модулями в различных контейнерах. Но контейнеры не масштабируются, не встроенные балансировки нагрузки и все. Думайте, если ваша ОС вылетает, где все ваши контейнеры, то вся система перестает работать, и система отключается. Кроме того, если ваши пользователи ограничивают пороговое значение, то у вас нет возможности создавать другой контейнер и управлять нагрузкой пользователями.
Чтобы преодолеть это ограничение и управлять, масштабировать ваш контейнер Kubernetes входит в картину.
Давайте посмотрим на архитектуру,
Kubernetes — это решение для оркестрации контейнера для развертывания приложений, масштабирования. Он был разработан Google, и теперь он поддерживается облачными нативными вычислениями Фонда.
Многие популярные облачные сервисы, такие как Google, Amazon, ETC, предлагают платформу на основе Kubernetes в качестве обслуживания или инфраструктуры в качестве службы, на котором Kubernetes развернут в качестве обслуживания платформы.
Kubernetes предоставляет инфраструктуру, которые развертывают, масштабируют приложения на основе использования CPU, трафик пользователя и в соответствии с указанным набором правил. Кубернаны следует за главным/рабыным архитектурой.
Кубернес Мастер —
Master Kubernetes отвечает за управление кластером, управлять рабочими нагрузками и связь по всей системе. Он содержит различные компоненты, такие как API-сервер, управляющий контроллер, планировщик ETCD.
etcd —
Это магазин данных о значении легкой ключей, который хранит детали конфигурации кластера. Это также представляет общее состояние кластера в любое время. Server API Kubernetes использует API EtCD Watch для мониторинга кластера и изменения конфигурации/обновления/понижения в соответствии с указанными правилами. Допустим, если Deployer установил пять экземпляров стручков, которые необходимо запустить, это сохраняется в ETCD. Если установлено, что запущены только 4 экземпляра, эта разница будет обнаружена путем сравнения с данными ETCD и Kubernetes создаст дополнительный экземпляр нового POD.
API Server —
API-сервер обслуживает API, используя json через http. API Server обрабатывает и подтверждает запросы на отдых и обновляет состояние объекта API в ETCD, поэтому он помогает клиентам настроить рабочие нагрузки и контейнеры на узлах рабочих.
Планировщик —
Планировщик выбирает незапланированные стручки узла. Он отслеживает ресурсы. Таким образом, на основе требований к ресурсам он может запланировать POD в узле.
Менеджер контроллера —
Диспетчер контроллеров управляет фактическое состояние кластера к желаемому состоянию кластера. Он связывается с API-сервером для создания, обновления и удаления ресурсов, которые он управляет. Он также несет ответственность за создание/замена узлов, если какой-либо узел не удается.
Узлы —
Узлы — это система, в которой развернуты контейнеры. Где работает Docker Image/Services. Содержит кублет, Kube-прокси, контейнер.
Кублет —
Kublet отвечает за работу/начало/остановку и поддержание узла и обеспечения контейнеров (PODS) на узле здоровы. Kubelet также контролирует состояние стручка, если каковеренности не в желаемом состоянии, он повторно развертывает тот же узел.
Статус узла проверяется в определенные секунды. Если он обнаружит сбой узла, контроллер репликации наблюдает этот изменение состояния и запускает POD на других здоровых узлах.
Kube-Proxy —
Это реализация сетевого прокси и балансировщик нагрузки. Он несет ответственность за маршрутизацию трафика для соответствующих контейнеров на основе IP и номера порта входящих запросов.
Контейнер Runtime —
Контейнер — это основной уровень микросервисов, который содержит приложения, библиотеки и зависимости. Он выставлен через внешний IP-адрес. Kubernetes поддерживает контейнеры Docker для запуска внутри POD.
POD —
POD — это подразделение планирования в Кубейнетах, Kubernetes содержит один или несколько, чем один контейнер и расположен на одном узле.
Каждый POD в Kubernetes присваивается уникальный IP-адрес в кластере, который позволяет приложениям использовать порты без риска конфликта.
Внутри стручка контейнеры ссылаются друг на друга на localhost. Но контейнер в одном POD не имеет способа напрямую подключить контейнер другого POD, для этого контейнер должен использовать IP-адрес POD.
Спасибо за блог!
Kpiteng |. Цифровая трансформация www.kpiteng.com/blogs |. hello@kpiteng.com Соединить |. Следуйте за нами на — LinkedIn |. Facebook |. Instagram.
Оригинал: «https://dev.to/kpiteng/kubernetes-architecture-45hp»