Kubernetes отказоустойчивость кластера

Etcd

Создана как распределённая система, достаточно указать при создании ноды что войти в кластер, число в кластере должно быть не чётным, чтобы работал принцип кворума. Число мастер узлов более 7 начинает влиять на производительность всего кластера.

API

Не хранит никакого состояния, все данные хранит в etcd, по этому экземпляров API может быть сколько угодно.

Менеджер контроллеров и планировщик

Они работают в режиме мониторинга и чтобы несколько контроллеров не стали создавать контейнеры, например при изменении ReplicaSet, из кластера выбирается лидер, который выполняет всю работу, пока остальные находятся в режиме ожидания, выбирается лидер через —leader-elect

Выбор лидера осуществляет API, создаётся ресурс в котором прописано кто лидер. Лидеров не может быть несколько, так как etcd при попытке одновременной записи, запишет только 1 значение, то что было первым. После того как ресурс стал лидером, он должен каждые 2 секунды подтверждать свой статус, если он этого не сделает, будет выбран другой лидер.

kubectl get endpoints kube-scheduler -n kube-system -o yaml
metadata:
  annotations:
    control-plane.alpha.kubernetes.io/leader: '{"holderIdentity":

 

K8S

Related Articles

0 Comment

Leave a Comment

Ваш адрес email не будет опубликован.