Пишу очередную заметку-шпаргалку. Она относится к архитектуре Kubernetes.
Целью Kubernetes является автоматизация развертывания контейнеризированных приложений. Он же соединяет все компоненты приложения в единой целое.
Кластер состоит из набора узлов на которых развернуты контейнеры.
Есть Master node, он состоит из:
Controller manager — отвечает за управление кластером, хранение информации об узлах Kubernetes, отвечает за планирование и размещение контейнеров , а также мониторинг. Отвечает за подключение новых узлов.
Инфомация хранится в ECTD — базе данныых типа ключ-значение. Все, что происходит в кластере должно быть записано в базу данных.
Планировщик (kube-scheduler). Планировщик знает сколько контейнеров запущенно на каждой ноде. Он определяет на какой ноде запустить очередной контейнер, исходя из его требований.
Api server отвечает за координацию всех операций в кластере, т.е. все взаимодействие происходит через него. Является главной и важный компоненент кластера Kubernetes.
И Worker node, на них запущены:
Kubelet — на каждом узле кластера. Он получается команды от Api server и разворачивает или удаляет контейнеры.
Приложения должны иметь возможность взаимодействовать между собой, даже если находятся на разных узлах кластера. Для этого существует Kube-proxy. Он организует сетевое взаимодействие между сервисами в кластере.