Kubernetes - Архитектура

В этой главе мы обсудим базовую архитектуру Kubernetes.

Kubernetes - кластерная архитектура

Как видно на следующей диаграмме, Kubernetes следует архитектуре клиент-сервер. При этом мастер установлен на одной машине, а узел - на отдельных машинах Linux.

Ключевые компоненты мастера и узла определены в следующем разделе.

Kubernetes - основные компоненты машины

Ниже приведены компоненты Kubernetes Master Machine.

etcd

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

API-сервер

Kubernetes - это сервер API, который обеспечивает все операции в кластере с помощью API. Сервер API реализует интерфейс, что означает, что с ним могут легко взаимодействовать различные инструменты и библиотеки.Kubeconfigпредставляет собой пакет вместе с инструментами на стороне сервера, которые можно использовать для связи. Он предоставляет Kubernetes API.

Менеджер Контроллера

Этот компонент отвечает за большинство коллекторов, которые регулируют состояние кластера и выполняют задачу. В общем, его можно рассматривать как демона, который работает в непрерывном цикле и отвечает за сбор и отправку информации на сервер API. Он работает для получения общего состояния кластера, а затем вносит изменения, чтобы привести текущий статус сервера к желаемому состоянию. Ключевыми контроллерами являются контроллер репликации, контроллер конечной точки, контроллер пространства имен и контроллер учетной записи службы. Диспетчер контроллеров запускает различные типы контроллеров для обработки узлов, конечных точек и т. Д.

Планировщик

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

Kubernetes - Компоненты узла

Ниже приведены ключевые компоненты сервера Node, которые необходимы для связи с мастером Kubernetes.

Докер

Первое требование к каждому узлу - это Docker, который помогает запускать инкапсулированные контейнеры приложений в относительно изолированной, но легкой операционной среде.

Кубелет Сервис

Это небольшая служба в каждом узле, отвечающая за передачу информации в службу уровня управления и обратно. Он взаимодействует сetcdstore для чтения деталей конфигурации и значений параметров. Он взаимодействует с главным компонентом для получения команд и работы. ВkubeletЗатем процесс берет на себя ответственность за поддержание состояния работы и сервера узла. Он управляет сетевыми правилами, переадресацией портов и т. Д.

Прокси-сервис Kubernetes

Это прокси-сервис, который работает на каждом узле и помогает сделать сервисы доступными для внешнего хоста. Он помогает пересылать запрос на исправление контейнеров и может выполнять простую балансировку нагрузки. Это гарантирует, что сетевая среда является предсказуемой и доступной, и в то же время она изолирована. Он управляет подами на узле, томами, секретами, создает проверку работоспособности новых контейнеров и т. Д.

Kubernetes - Мастер и структура узла

На следующих иллюстрациях показана структура Kubernetes Master и Node.