Архитектура Kubernetes: все, что вам нужно знать в 2022 году
Опубликовано: 2021-01-05Оглавление
О Кубернетес
Kubernetes — это платформа с открытым исходным кодом с такими функциями, как максимизация ресурсов, автоматический процесс развертывания и обновления, автоматическое масштабирование, самовосстановление, автоматические откаты и развертывания, а также балансировка нагрузки оркестраторов контейнеров, а также обнаружение служб, автоматический перезапуск, автоматическое размещение. авторепликация и т. д. Kubernetes — это не только оркестратор контейнеров; это также ОС для облачных приложений.
Это похоже на платформу для запуска приложения, аналогичного другим приложениям, работающим в Windows, MacOS или Linux с большей гибкостью. Это снижает нагрузку на оркестровку и позволяет разработчикам полностью сосредоточиться на рабочих процессах, ориентированных на контейнеры, в целях самообслуживания. Разработчики имеют преимущество очень высокого уровня автоматизации развертывания и управления приложениями. Его можно интегрировать с любой средой для расширения возможностей.
Читайте: Зарплата Kubernetes в Индии
Архитектура Кубернета
Архитектура Kubernetes состоит из слоев: верхних и нижних слоев. В этом случае физические или виртуальные машины объединяются в кластер. Общая сеть используется для связи между каждым сервером. В Kubernetes есть один мастер (по крайней мере), действующий как плоскость управления, распределенная система хранения. Несколько узлов кластера также известны как Kubelets.
- Мастер Kubernetes, плоскость управления, планирует развертывания, предоставляет API и управляет всем кластером Kubernetes.
- На узле кластера работает среда выполнения контейнера, агент для связи с мастером и другие компоненты мониторинга, ведения журнала и т. д.
Архитектура Kubernetes и компоненты Kubernetes показаны на изображении ниже.
Источник

Давайте посмотрим на компоненты Kubernetes .
Компоненты Кубернета
Мастер: плоскость управления Kubernetes
Мастер поддерживает данные каждого объекта в Kubernetes. Поскольку он управляет всем кластером, поэтому он называется Master. Он контролирует состояния объектов, поддерживает соответствие реального состояния системы требуемому, реагирует на изменения и т. д.
Он содержит следующие три важных компонента:
- Сервер Kube-API: сервер API Kubernetes
- Kube-Scheduler: планирование подов в рабочих узлах
- Kube-Controller: управляет репликацией модуля .
Если мастер-узлов несколько, то эти компоненты реплицируются на все мастер-узлы.
Оркестрация жизненного цикла различных приложений, включая обновления, масштабирование и т. д., выполняется сервером API. Он работает как шлюз для клиентов, не входящих в кластер. Сервер API выполняет аутентификацию. Он также действует как посредник для модулей и узлов.
Контроллер выполняет следующие задачи:
- Запуск основных циклов управления
- Внесение изменений для состояния вождения в требуемое состояние.
- Наблюдаем за состоянием кластера
Он также предлагает маршрутизацию, услуги хранения, балансировку нагрузки, сетевые службы DNS, экземпляры виртуальных машин за счет интеграции в общедоступные облака. Различные контроллеры, управляющие состоянием для автоматического масштабирования, узлы, сервисы и модули, пространства имен.
Планирование контейнеров на всех узлах выполняется Планировщиком внутри кластера; с учетом различных ограничений/гарантий ресурсов или спецификаций анти-аффинити/аффинити.
Таксономия плоскости управления Kubernetes показана ниже:
Источник
Узлы кластера: Kubelets
Kubelets — это разные машины, отвечающие за запуск контейнеров. Мастер управляет узлами кластера. Его еще называют Миньон. Узлы кластера считаются основным контроллером Kubernetes. Он управляет Docker, исполнительным уровнем контейнеров.
Он содержит следующие компоненты:
- Pod: группа контейнеров
- Docker: технология на основе контейнеров, пользовательское пространство ОС
- Kubelet: агенты-контейнеры, отвечающие за обслуживание набора модулей.
- Kube-proxy: направляет трафик, поступающий на узел от службы.
Таксономия узлов кластера Kubernetes показана ниже:
Источник
Модули и сервисы
Поды — важная концепция в Kubernetes, с которой взаимодействуют разработчики. Он представляет запущенный процесс. Он может размещать вертикально интегрированные стеки приложений, такие как приложения WordPress LAMP. Ниже приведены различные типы стручков:
Тип модуля | Функциональность |
набор реплик | Простой тип пода Обеспечивает работу стационарных модулей |
Развертывание | Декларативный способ управления подами через ReplicaSet![]() Включены циклические обновления и механизмы отката. |
StatefulSet | Управляет модулями, которые должны сохраняться |
Демонсет | Гарантирует, что каждый узел запускает экземпляр модуля. Управляет службами кластера, такими как пересылка журналов и мониторинг работоспособности. |
CronJob и работа | Запускает краткосрочные задания в качестве планировщика |
Модуль может состоять из нескольких контейнеров и внешних томов. Таксономия стручка показана на диаграмме ниже:
Источник
Сервисы отслеживают поды. Для определения ассоциаций модулей и служб вместо назначений IP-адресов используются селекторы или метки. Это упрощает добавление модулей в сервис и выпуск новых версий. Ниже приведены различные типы услуг:
Тип Обслуживания | Функциональность |
IP кластера | Тип по умолчанию; Предоставляет службу на внутреннем IP-адресе и делает службу доступной |
NodePort | Позволяет разработчикам настраивать собственные балансировщики нагрузки. |
LoadBalancer | Автоматизирует их настройку |
ВнешнееИмя | Обычно используется для создания службы в Kubernetes. |
Обычно используется облачное развертывание типа LoadBalancer. Kubernetes поддерживает абстракцию Ingress высокого уровня для решения сложных задач. Пользователи могут отображать разные службы в пределах одного и того же IP-адреса, используя одни и те же балансировщики нагрузки.
Подробнее: Openshift против Kubernetes: разница между Openshift и Kubernetes
Сеть Kubernetes
В основном CNI (контейнерный сетевой интерфейс) используется для сокрытия основной сети. Также можно использовать бязь, вариант с полной маршрутизацией. В обоих вариантах связь осуществляется в сети модулей кластера и контролируется Calico или Flannel (поставщик CNI). Контейнеры могут обмениваться данными внутри модуля через локальный хост без каких-либо ограничений. Перемещение из внешних источников в сервисы или из модулей в сервисы осуществляется через Kube-proxy.
Постоянное хранение
Каталог с некоторыми данными называется Volumes в Kubernetes. Каталоги доступны для модулей. В Kubernetes существует множество типов хранилищ. Контейнеры внутри модуля могут потреблять любое хранилище. Общедоступные облачные сервисы, такие как NFS, Amazon Elastic Block Store, Iscsi, CephFS и т. д., используются для подключения файлов и блочного хранилища к поду. PV (PersistentVolumes) — это объекты кластера, привязанные к существующим ресурсам хранения.
В пространстве имен запрос на использование хранилища инициируется PersistentVolumeClaim. Различные состояния PV доступны, привязаны, освобождены и неисправны. StorageClasses — это уровень абстракции. Он различает базовое качество хранения и выделяет различные характеристики. Модуль может динамически запрашивать новое хранилище с помощью StorageClasses и PersistentVolumeClaim.
Источник
Службы обнаружения и публикации
В зависимости от версии кластера Kubernetes использует Kube-DNS или CoreDNS для обнаружения служб. Эти интегрированные службы DNS создают, обновляют и удаляют записи DNS. Это помогает приложениям нацеливаться на другие модули и службы с помощью последовательной и простой схемы именования.
Пример ( Источник )
Для службы Kubernetes запись DNS может быть service.namespace.svc.cluster.local.
Запись DNS, модуль может иметь: 10.32.0.125.namespace.pod.cluster.local
Источник
Пространства имен
Физический кластер, содержащий виртуальные кластеры, называется пространством имен. Он предоставляет отдельную виртуальную среду нескольким пользователям вместе с соответствующими правами доступа к объектам Kubernetes.
Этикетки
Метки используются для различения ресурсов, присутствующих в одном пространстве имен. Атрибуты определяются парами ключей или значений. Метки используются для сопоставления организационных структур с объектами Kubernetes. Он может описывать среду, состояние выпуска, уровень приложения или идентификацию клиентов. Это предотвращает жесткое связывание объектов.
Аннотации
Аннотации используются для добавления произвольного неопознанного багажа или метаданных к объектам. Он используется как инструмент декларативной конфигурации.

Обязательно прочтите: Kubernetes против. Docker: основные отличия, которые вы должны знать
Получите диплом инженера -программиста в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.
Заключение
Технология Kubernetes быстро развивается, и это экономичное решение для будущего. Он предлагает большую стабильность для приложений.
В этой статье объясняются все основные понятия архитектуры Kubernetes и компонентов Kubernetes .
Если вам интересно узнать больше о Kubernetes, больших данных, ознакомьтесь с программой Executive PG upGrad и IIIT-B по разработке программного обеспечения с полным стеком, которая предназначена для работающих профессионалов и предлагает более 500 часов тщательного обучения, более 9 проектов и задания, статус выпускника IIIT-B, практические практические проекты и помощь в трудоустройстве в ведущих фирмах.
