В этой главе мы обсудим основную архитектуру Kubernetes.
Кубернетес — кластерная архитектура
Как видно из следующей диаграммы, Kubernetes следует архитектуре клиент-сервер. При этом у нас есть master, установленный на одной машине, а узел на разных машинах Linux.
Ключевые компоненты мастера и узла определены в следующем разделе.
Kubernetes — основные компоненты машин
Ниже приведены компоненты Мастер машины Kubernetes.
etcd
Он хранит информацию о конфигурации, которая может использоваться каждым из узлов в кластере. Это хранилище значений ключей высокой доступности, которое может быть распределено по нескольким узлам. Он доступен только API-серверу Kubernetes, поскольку может содержать некоторую конфиденциальную информацию. Это распределенное ключевое значение Store, которое доступно всем.
API-сервер
Kubernetes — это сервер API, который обеспечивает все операции в кластере с использованием API. Сервер API реализует интерфейс, что означает, что различные инструменты и библиотеки могут легко взаимодействовать с ним. Kubeconfig — это пакет вместе с инструментами на стороне сервера, которые можно использовать для связи. Это выставляет API Kubernetes.
Диспетчер контроллеров
Этот компонент отвечает за большинство сборщиков, которые регулируют состояние кластера и выполняют задачу. В общем, его можно рассматривать как демон, который работает в бесконечном цикле и отвечает за сбор и отправку информации на сервер API. Он работает для получения общего состояния кластера, а затем вносит изменения, чтобы привести текущее состояние сервера в желаемое состояние. Ключевыми контроллерами являются контроллер репликации, контроллер конечной точки, контроллер пространства имен и контроллер учетной записи службы. Диспетчер контроллеров запускает контроллеры различного типа для обработки узлов, конечных точек и т. Д.
планировщик
Это один из ключевых компонентов мастера Kubernetes. Это услуга мастера, ответственная за распределение рабочей нагрузки. Он отвечает за отслеживание использования рабочей нагрузки на узлах кластера, а затем за размещение рабочей нагрузки, на которой доступны ресурсы, и за принятие рабочей нагрузки. Другими словами, это механизм, отвечающий за распределение модулей доступным узлам. Планировщик отвечает за использование рабочей нагрузки и выделение модуля новому узлу.
Kubernetes — Узел Компоненты
Ниже приведены ключевые компоненты сервера Node, которые необходимы для связи с мастером Kubernetes.
докер
Первым требованием каждого узла является Docker, который помогает запускать контейнеры инкапсулированных приложений в относительно изолированной, но облегченной операционной среде.
Кубеле Сервис
Это небольшая служба в каждом узле, отвечающая за передачу информации в службу уровня управления и обратно. Он взаимодействует с хранилищем etcd для чтения сведений о конфигурации и значений Wright. Это связывается с главным компонентом для получения команд и работы. Затем процесс kubelet берет на себя ответственность за поддержание рабочего состояния и сервера узла. Он управляет сетевыми правилами, переадресацией портов и т. Д.
Kubernetes Proxy Service
Это прокси-сервис, который работает на каждом узле и помогает сделать сервисы доступными для внешнего хоста. Он помогает пересылать запрос для исправления контейнеров и способен выполнять примитивную балансировку нагрузки. Это гарантирует, что сетевая среда предсказуема и доступна, и в то же время она также изолирована. Он управляет модулями на узлах, томами, секретами, проверкой работоспособности новых контейнеров и т. Д.
Kubernetes — структура хозяина и узла
Следующие иллюстрации показывают структуру Kubernetes Master и Node.