Kubernetes самая известная технология в современном микросервисы. Он разработан, чтобы упростить и автоматизировать управление кластерами микросервисов контейнерных приложений. За этим простым понятием скрывается мир сложности. Эта статья дает вам подробное концептуальное представление о том, как работает эта центральная технология.

Один из полезных способов думать о Kubernetes – это как распределенная операционная система для контейнеров. Он предоставляет инструменты и команды, необходимые для организации взаимодействия и масштабирования контейнеров (чаще всего Контейнеры Docker) и запускаются контейнеры инфраструктуры. Kubernetes – это универсальный инструмент, предназначенный для работы в широком диапазоне сценариев. Это очень гибкая и очень сложная система.

Читайте дальше, чтобы понять архитектуру Kubernetes.

Рабочие узлы Kubernetes и плоскость управления

В Kubernetes есть два аспекта: рабочие узлы и плоскость управления. Рабочие узлы – это то место, где существуют фактические контейнерные приложения вместе с необходимыми инструментами Kubernetes. Плоскость управления – это то место, где живут инструменты для управления этим кластером. На рисунке 1 представлена ​​общая картина этой архитектуры.

Рисунок 1. Рабочие узлы Kubernetes и плоскость управления

кубернетес 01 IDG

Фигура 1.

Как видно на рисунке 1, архитектура разделена на рабочие узлы а также головные узлы отвечает за выполнение рабочих нагрузок и запуск инструментов управления соответственно.

Узлы в обоих случаях являются машинами, виртуальными или фактическими.

Компоненты рабочего узла Kubernetes

На рисунке 2 показаны основные элементы рабочего узла Kubernetes. Давайте посмотрим на каждый компонент по очереди.

Рисунок 2. Детали рабочего узла Kubernetes

рабочий узел Kubernetes 02 IDG

Фигура 2.

Кубелет

А Кубелет представляет собой «небольшую» программу, работающую на рабочем узле, отвечающую за согласование между плоскостью управления и узлом. Его основная цель – обеспечить выполнение директив, поступающих из кластера головных узлов в поды, и сообщить о текущем состоянии рабочих нагрузок.

Kube прокси

В kube прокси отвечает за соблюдение сетевых правил на узле и разрешение трафика к узлу и от него.

Прокси-сервер kube отличается от входить, который работает на уровне кластера и определяет правила для сетевых маршрутов в кластер.

Стручки

Поды – это дискретная единица работы на узле. Поды – это уровень репликации. Они представляют собой абстракцию, которая охватывает одно или несколько контейнерных приложений. Модули позволяют логически группировать и изолировать контейнеры, которые работают вместе, при этом обеспечивая обмен данными между модулями на одном компьютере. Отношения между контейнерами и модулями контролируются дескрипторами развертывания Kubernetes.

Развертывания и наборы реплик

Поды обычно настраиваются и развертываются как часть ReplicaSet. ReplicaSet определяет желаемые характеристики времени выполнения модуля и заставляет Kubernetes работать для поддержания этого состояния. ReplicaSets обычно определяются Развертывание, который определяет как параметры ReplicaSet, так и стратегия для использования (т. е. независимо от того, обновляются ли поды или воссоздаются) при управлении кластером.

Коляски

На уровне модуля дополнительные функции включаются через коляска дополнения. Sidecars обрабатывает такие задачи, как ведение журнала на уровне модуля и сбор статистики.

На рисунке 3 представлены более подробные изображения модулей в рабочем узле.

Рисунок 3. Детали модуля Kubernetes

контейнер kubernetes pod деталь 03 IDG

Рисунок 3.

Плоскость управления Kubernetes

Пока что мы сосредоточились на понимании рабочей стороны вещей. Давайте теперь обратимся к стороне контроллера и поймем, как Kubernetes управляет работой кластера.

На рисунке 4 подробно представлены компоненты головного узла.

Рисунок 4. Детали головного узла Kubernetes

головной узел kubernetes 04 IDG

Рисунок 4.

И т. Д.

Самый простой для понимания компонент – это etcd (произносится как «et-cee-dee»). Etcd – это распределенное хранилище объектов, которое действует как база данных записей для конфигурации и состояния всего кластера.

Сервер API

Как видно из рисунка 4, Сервер API является центральным механизмом связи для кластера. Он обеспечивает взаимодействие между плоскостью управления, рабочими узлами и администраторами, поскольку они применяют изменения конфигурации с помощью инструментов командной строки Kubernetes (например, kubectl) или другого пользовательского интерфейса.

Планировщик

Планировщик отвечает за определение узла, на котором будут работать поды. Детали того, как это определяется, зависят от характеристик модулей и существующего состояния доступных узлов. Стратегию того, как планировщик подходит к принятию решения, можно полностью настроить, вплоть до возможности писать собственные планировщики. Планировщик взаимодействует с сервером API при выполнении своей работы.

Контроллер

В контролер Компонент отвечает за поддержание кластера в желаемом состоянии в соответствии с настройками и за перемещение его в это состояние при удалении от него. Контроллер действует как своего рода термостат который определяет желаемое состояние, а затем работает над его поддержанием.

В терминологии Kubernetes вы создаете объект, который является постоянным объектом, зарегистрированным в etcd. Объект – это запись того, как все должно быть. Затем контроллер действует, чтобы гарантировать, что объект имеет желаемый спецификации, или свойства.

Например, ReplicaSet (рассмотренный выше) определяет, сколько модулей должно быть запущено, в зависимости от критериев использования. ReplicaSet – это объект, а указанное количество модулей – это спецификация. Фактическое состояние кластера по отношению к этому ReplicaSet – это статус. Контроллер получает согласованные отчеты от кластера об этом статусе и предпринимает действия, чтобы привести статус в соответствие со спецификациями, создавая или уничтожая поды.

Репозиторий образов контейнера

Последний компонент, о котором нужно знать, – это репозиторий изображений (также называемый реестром изображений). Этот компонент существует вне кластера и доступен администраторам и плоскости управления для загрузки необходимых определений контейнеров. Реестры размещаются в различных организациях. включая Docker Hub и может быть публичным или частным. Все основные поставщики облачных услуг предлагают управляемые репозитории для корпоративного использования.

Контейнеры правил Kubernetes

Теперь у вас есть понимание архитектуры Kubernetes и того, как Kubernetes работает для достижения своей цели. Это непростая система, но это потому, что развертывание, управление и масштабирование контейнерных приложений – непростая задача. Kubernetes обладает широкими возможностями настройки и достаточно гибок, чтобы справляться с широким спектром сценариев приложений на основе контейнеров, встречающихся в реальных условиях.

Kubernetes – выдающаяся технология в современных подходах к архитектуре программного обеспечения. Следовательно, знание Kubernetes будет необходимо всем, кто интересуется DevOps, контейнерами, облачными приложениями и архитектурой микросервисов.

Авторские права © 2021 IDG Communications, Inc.


#Как #работает #Kubernetes #InfoWorld

Source link