kubernetes глазами архитектора
2020-07-07 14:51:12 +0600 +0600
kubernetes глазами архитектора, быстрый взгляд
kubernetes глазами архитектора
Всем привет.
Недавно мне пришлось собеседовать на наш проект много девопс инженеров. Я понял что у людей много заблуждений о том как kubernetes работает и как устроен.
Эта статья содержит минимальный набор знаний что бы у интервьюера сложилось мнение о том что человек хотя бы немного понимает в области kubernetes.
Kubernetes кластер состоит из:
- K8s master
- K8s nodes.
K8s NODES
Нода может быть развернута на физической машине или виртуальной машине. Внутри ноды развернуты PODs. Pod это абстракция которой нода присваивает IP. Внутри Pod находятся контейнеры. Т.е. один мастер может управлять 1 или несколько нод (максимум 5000, по крайней мере так было год назад). В одной ноде может находиться несколько POD (максимум 100, так было раньше)
K8s master
Мастер состоит из 4 компонентов:
- Scheduler - Планировщик следит за вновь созданными Pod, которым не назначен Node. Для каждого pod, который обнаруживает планировщик, планировщик отвечает за поиск лучшего нода для этого pod. Планировщик принимает это решение о размещении с учетом принципов планирования, описанных в конфиг файле.
- Api server - Сервер API Kubernetes проверяет и настраивает данные для объектов API, которые включают в себя pods, nodes, службы, контроллеры репликации и другие. Сервер API обслуживает операции REST и обеспечивает интерфейс общего состояния кластера, через который взаимодействуют все другие компоненты.
- Controller manager - состоит из kube-controller-manager и cloud-controller-manager
kube-controller-manager
Node controller. Отвечает за уведомление и реагирование при выходе из строя узлов.
Replication controller: отвечает за поддержание правильного количества модулей для каждого объекта контроллера репликации в системе.
Endpoints controller: заполняет объект конечных точек (то есть присоединяется к нодс и pods).
Service Account & Token controllers: создание учетных записей по умолчанию и токенов доступа API для новых пространств имен
cloud-controller-manager
Node controller. эндпоинт для клауд провайдера определяет, хэлсчек в облаке после того, как нод перестал отвечать
Route controller: настройка роутов в облачной инфраструктуре
Service controller:: Для создания, обновления и удаления балансировщиков нагрузки облачного провайдера
- ETCD
Etcd - это согласованное и высокодоступное хранилище значений ключей, используемое в качестве резервного хранилища Kubernetes для всех данных кластера.
Если ваш кластер Kubernetes использует etcd в качестве резервного хранилища, убедитесь, что у вас есть план резервного копирования этих данных.