Как KOPS воссоздает мастер-узел в AWS? - PullRequest
0 голосов
/ 27 марта 2019

Я экспериментирую с Kops на AWS.Мой кластер состоит из 1 главного узла и 3 рабочих узлов.Все работает отлично, и для проверки отказа главного узла я завершил работу соответствующего экземпляра EC2 и, конечно, группа AutoScaling обработала эту проблему и создала новый экземпляр, и он стал новым главным узлом.Так что все в порядке.

Мой вопрос заключается в том, как группа AutoScaling смогла настроить новый экземпляр EC2 для правильной настройки в качестве главного узла Kubernetes?Существуют ли предопределенные AMI, созданные при настройке KOPS?Или есть сценарий пользовательских данных, который запускается каждый раз при создании нового экземпляра?

Спасибо.

1 Ответ

0 голосов
/ 10 апреля 2019

Это потому, что у kops есть концепция групп экземпляров . На AWS они напрямую сопоставляются с AutoScalingGroup, что является аналогичной концепцией. Вы можете проверить свои группы экземпляров, запустив kops get ig, а также отредактировать и удалить накипи свой мастер и узлы до 0, а затем повторно запустить их с помощью kops edit ig nodes/nameofthemaster. Вторая часть - kops State Store . Который является местом, где находится конфигурация кластера. Это соответствует большей части конфигурации Kubernetes, за исключением некоторых ресурсов и, например, развертываний (например, внутреннего состояния), которые хранятся в etcd .

Таким образом, в вашем случае, когда вы удаляете главный узел, AWS увидит, что состояние вашей AutoScalingGroup равно 0 вместо 1, поэтому он воссоздает компьютер EC2.

Description:DescriptionLaunching a new EC2 instance: i-0e06f8fbb78aca2e6
Cause:CauseAt 2019-04-10T12:54:31Z an instance was started in response to a difference between desired and actual capacity, increasing the capacity from 0 to 1.

После этого Kubernetes получит свою конфигурацию из корзины S3 и внутреннее состояние из etcd. Следующим вопросом будет, как etcd выживет после удаления мастера. Вы можете проверить это в своих томах, так как etcd имеет два отдельных тома (так же, как и пакеты etcd, один для событий и один основной). После удаления главного тома переходят в состояние avalivable, а после этого новый том EC2 порождает эти тома. будет подключен к новому мастеру, и вы восстановите внутреннее состояние (не уверен, но я думаю, что protokube также находится где-то на рисунке).

Это также причина, по которой вы можете восстановить кластер kops только из корзины s3, поскольку есть все настройки, которые необходимы для запуска kops. За исключением внутреннего состояния, которое находится в etcd, для которого вам потребуется отдельное резервное копирование.

...