OpenShift — это многоуровневая система, в которой каждый слой тесно связан с другим уровнем с использованием кластера Kubernetes и Docker. Архитектура OpenShift разработана таким образом, что она может поддерживать и управлять контейнерами Docker, которые размещаются поверх всех слоев с использованием Kubernetes. В отличие от более ранней версии OpenShift V2, новая версия OpenShift V3 поддерживает контейнерную инфраструктуру. В этой модели Docker помогает создавать легкие контейнеры на основе Linux, а Kubernetes поддерживает задачу организации и управления контейнерами на нескольких хостах.
Компоненты OpenShift
Одним из ключевых компонентов архитектуры OpenShift является управление контейнерной инфраструктурой в Kubernetes. Kubernetes отвечает за развертывание и управление инфраструктурой. В любом кластере Kubernetes мы можем иметь более одного главного и несколько узлов, что гарантирует отсутствие сбоя в настройке.
Kubernetes Master Machine Компоненты
Etcd — хранит информацию о конфигурации, которая может использоваться каждым из узлов в кластере. Это хранилище значений ключей высокой доступности, которое может быть распределено по нескольким узлам. Он должен быть доступен только серверу API Kubernetes, поскольку он может содержать конфиденциальную информацию. Это распределенное ключевое значение Store, которое доступно всем.
Сервер API — Kubernetes — это сервер API, который обеспечивает все операции в кластере с использованием API. Сервер API реализует интерфейс, который означает, что различные инструменты и библиотеки могут легко взаимодействовать с ним. Kubeconfig — это пакет вместе с инструментами на стороне сервера, которые можно использовать для связи. Это разоблачает API Kubernetes ».
Диспетчер контроллеров. Этот компонент отвечает за большинство сборщиков, которые регулируют состояние кластера и выполняют задачу. Его можно рассматривать как демон, который работает в бесконечном цикле и отвечает за сбор и отправку информации на сервер API. Он работает для получения общего состояния кластера, а затем вносит изменения, чтобы привести текущее состояние сервера в желаемое состояние. Ключевыми контроллерами являются контроллер репликации, контроллер конечной точки, контроллер пространства имен и контроллер учетной записи службы. Диспетчер контроллеров запускает контроллеры различного типа для обработки узлов, конечных точек и т. Д.
Планировщик — это ключевой компонент мастера Kubernetes. Это служба в мастере, которая отвечает за распределение рабочей нагрузки. Он отвечает за отслеживание использования рабочей нагрузки на узлах кластера, а затем за размещение рабочей нагрузки, на которой доступны ресурсы, и за принятие рабочей нагрузки. Другими словами, это механизм, отвечающий за распределение модулей доступным узлам. Планировщик отвечает за использование рабочей нагрузки и выделение модуля новому узлу.
Узлы Kubernetes
Ниже приведены ключевые компоненты сервера Node, которые необходимы для связи с мастером Kubernetes.
Docker . Первым требованием каждого узла является Docker, который помогает запускать контейнеры инкапсулированных приложений в относительно изолированной, но облегченной операционной среде.
Служба Kubelet — это небольшая служба в каждом узле, которая отвечает за передачу информации в службу уровня управления и обратно. Он взаимодействует с хранилищем etcd для чтения деталей конфигурации и значений Wright. Это связывается с главным компонентом для получения команд и работы. Затем процесс kubelet берет на себя ответственность за поддержание рабочего состояния и сервера узла. Он управляет сетевыми правилами, переадресацией портов и т. Д.
Прокси-сервис Kubernetes — это прокси-сервис, который работает на каждом узле и помогает сделать сервисы доступными для внешнего хоста. Помогает в пересылке запроса на исправление контейнеров. Прокси-сервис Kubernetes способен выполнять примитивную балансировку нагрузки. Это гарантирует, что сетевая среда предсказуема и доступна, но в то же время она также изолирована. Он управляет модулями на узлах, томами, секретами, проверкой работоспособности новых контейнеров и т. Д.
Интегрированный Реестр Контейнеров OpenShift
Реестр контейнеров OpenShift — это встроенное хранилище Red Hat, которое используется для хранения образов Docker. В последней интегрированной версии OpenShift появился пользовательский интерфейс для просмотра изображений во внутреннем хранилище OpenShift. Эти реестры могут содержать изображения с указанными тегами, которые впоследствии используются для создания из него контейнеров.
Часто используемые термины
Изображение — изображения Kubernetes (Docker) являются ключевыми строительными блоками контейнерной инфраструктуры. На данный момент Kubernetes поддерживает только изображения Docker. Внутри каждого контейнера в модуле находится изображение Docker. При настройке модуля свойство изображения в файле конфигурации имеет тот же синтаксис, что и команда Docker.
Проект — их можно определить как переименованную версию домена, которая присутствовала в более ранней версии OpenShift V2.
Контейнер — это те, которые создаются после развертывания образа на узле кластера Kubernetes.
Узел . Узел — это рабочая машина в кластере Kubernetes, которая также называется minion для master. Это рабочие единицы, которые могут быть физическими, виртуальными или облачными.
Pod — Модуль — это набор контейнеров и его хранилище внутри узла кластера Kubernetes. Можно создать контейнер с несколькими контейнерами внутри. Например, хранение контейнера базы данных и контейнера веб-сервера внутри модуля.