2016-05-19 7 views
0

У меня есть настройка мастера kubernetes в AWS, сбалансированная ELB. Я создаю 5-6 экземпляров, использующих терраформу и предоставляя ей подчиненные кубы и точечные кубели на ELB. Когда я запускаю узлы kubectl, появляются только 3 или 4 экземпляра. Похоже, регистрация ведомых с мастером не выполняется для нескольких узлов, но все узлы идентичны.Непоследовательное поведение ведомых устройств Kubernetes, несколько подчиненных не отображаются

Его случайное поведение, несколько раз все рабы обнаруживаются просто отлично.

+1

Вы рабы, которые появляются и исчезают с 'kubectl get nodes'? Если нет, то, что описывает kubectl, показывает узел (рабы сердца с хозяином)? Если да, посмотрите в своих журналах kubelet (специфический для дистрибутива, обычно var/log или journalatd). –

+0

Вы пробовали что-то вроде этого? 'kubectl --namespace = kube-system получить узлы -a' – Naveen

ответ

1

Это может быть состояние гонки, исходя из моего собственного опыта работы с AWS и Terraform.

СОБ обычно требуют больше времени, чем EC2 случаях, чтобы подготовиться, так что если по какой-либо причине kubelet начинает до того ELB может служить, то узел просто не регистрируют («хост не найден» или «ошибка 500" в зависимости от времени)

Вы можете уменьшить, что в 2-х способов:

  • сделать свой kubelet сервис/контейнер автоматически перезапускается при сбое
  • создать строгую зависимость между экземплярами EC2 и УДР, с проверка готовности на ELB (HTTP-вызов был бы достаточным)

Мне нужны журналы из kubelet, чтобы проверить эту теорию, конечно.

2

Отвечая на мой собственный вопрос -

Я называю подчиненные узлы с их PrivateIP, и я динамически порождать раб, прикрепить ее освоить, график стручки, и уничтожить раб после того, как работа сделана но I никогда не удаляли эти узлы из куба. т.е.: «kubectl delete node-name».

Все эти разрушенные подчиненные узлы были в состоянии «Не готовы» с именем = PrivateIP.

Теперь, когда ведомые устройства уничтожены, PrivateIP возвращается в пул AWS IP, теперь вновь созданные экземпляры могут принимать эти IP-адреса.

Теперь, когда я запускаю новых подчиненных и пытаюсь подключить их к мастеру, возможно, что несколько подчиненных устройств получают тот же PrivateIP, что и те подчиненные устройства, которые находятся в состоянии «Не готовы» (поскольку эти подчиненные устройства уничтожены, и эти IP-адреса уже выпущены).

Следовательно, Kubernetes просто изменил статус старого подчиненного устройства на состояние «Готов», которое прошло незаметно раньше, так как я программно ждал появления новых подчиненных.

Примечание:

уничтожить смысл прекратить AWS экземпляр

Удалить означает отсоединение от раба Kubernetes т. kubectl delete node-name