Всем привет! Прежде чем начать настройку кластера kubernetes, разберёмся в таких понятиях как кластер, мастер-нода, миньон, поймём чем два последних отличаются друг от друга, а также рассмотрим основные компоненты.
Предыдущая часть:
Все части:
Kubernetes nodes
В нашем случае нода — это физический или виртуальный компьютер, на котором установлен k8s.
В общем случае нода (англ. node - узел) — это физический или виртуальный компьютер.
Чтобы kubernetes мог запускать контейнеры, ему нужен рабочий узел (worker node).
Рабочий (Миньон)
Рабочий узел (иногда его называют миньон) — это машина, на которой kubernetes запускает контейнеры.
Если у нас будет всего одна рабочая нода, то при выходе её из строя, у нас не останется рабочих контейнеров, поэтому миньонов должно быть более одного (минимум три). В этом случае если какой-то узел выйдет из строя, приложение останется доступным с других узлов.
Кроме доступности, наличие нескольких узлов решает ещё одну задачу - распределение нагрузки.
На каждом рабочем узле должна быть установлена среда выполнения контейнеров (в нашем случае ContainerD, в следующих частях я объясню разницу между containerd и docker), агент kubelet.
Когда у нас есть несколько нод, мы можем сгруппировать их в кластер.
Кластер
Кластер (англ. cluster - скопление) — это набор сгруппированных узлов. В кластере уже есть рабочие узлы, но кто будет отвечать за их управление?
Нам необходимо где-то хранить информацию о членах кластера, осуществлять мониторинг узлов, распределять нагрузку и т.д. Чтобы решить эту задачу нам необходим ещё один узел, который будет управлять кластером (master node).
Мастер
Мастер - это узел kubernetes, настроенный определённым образом. Он наблюдает за узлами кластера и отвечает за оркестрацию контейнеров.
В кластере может быть несколько узлов этого типа
На мастер ноде должен быть установлен API kube, который, в общем-то, и делает из обычного узла ведущий. Также требуются хранилище значений ключей etcd, контроллер и планировщик.
Есть и другие компоненты, но на данном этапе нам достаточно знать об этих.
Компоненты k8s
При установке kubernetes на мастер или рабочую ноду, происходит установка определённого набора компонентов. Рассмотрим некоторые из них:
API Server
API сервер выступает в качестве интерфейса для кластера kubernetes.
Служба etcd
etcd — это распределённое хранилище значений ключей. Служба хранит все данные, используемые для управления кластером на мастер узлах кластера распределённым образом (если их несколько).
Container Runtime
Среда выполнения контейнера — это базовое ПО, используемое для запуска контейнеров.
Контроллер
Контроллер — мозг, отвечающий за оркестрацию. Он реагирует на выход узлов или контейнеров из строя и принимает решение о запуске новых.
Планировщик
Планировщик отвечает за распределение рабочих нод и контейнеров. Он ищет только что созданные контейнеры и назначает их узлам.
Служба kubelet
Kubelet является агентом, который запускается на каждом рабочем узле кластера. Он отвечает за мониторинг и взаимодействие с master node.
Заключение
В этой части мы разобрались что такое кластер kubernetes и рассмотрели основные компоненты k8s и зоны их ответственности.
Следующая часть:
Спасибо, что дочитали статью до конца.
Поддержите канал лайком и подпиской, чтобы чаще видеть в ленте подобный контент. Всем добра!)
---
- Сбербанк: 2202 2013 5155 5152
- Тинькофф: 2200 7008 1567 2323