Предотвращение взлома Kubernetes (kubectl не отвечает), когда слишком много стручков - PullRequest
0 голосов
/ 13 ноября 2018

Kubernetes ломается (нет ответа от kubectl), когда у меня слишком много модулей , работающих в кластере (1000 модулей).

* ресурсов более чем достаточно (процессор и память), поэтому мне кажется, что какой-то контроллер ломается и не может обрабатывать большое количество модулей.

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

На самом деле, я хотел бы иметь возможность запускать еще 1000 раз.Может быть, даже 100 000 стручков .

Мой главный узел Kubernetes является экземпляром AWS EC2 m4.xlarge.

Моя интуиция говорит мне, что именно производительность главного узла сдерживает кластер?

Есть идеи?

Подробности:
Я запускаю 1000 модулей в развертывании.
когда я делаю kubectl get deploy
, он показывает:

DESIRED  CURRENT  UP-TO-DATE  AVAILABLE  
1000     1000     1000        458  

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

когда я делаю kops validate cluster
я получаю предупреждение:

VALIDATION ERRORS
KIND            NAME                                                                    MESSAGE
ComponentStatus controller-manager                                                      component is unhealthy
ComponentStatus scheduler                                                               component is unhealthy
Pod             kube-system/kube-controller-manager-<ip>.ec2.internal        
kube-system pod 
"kube-controller-manager-<ip>.ec2.internal" is not healthy
Pod             
kube-system/kube-scheduler-<ip>.ec2.internal                 
kube-system pod "kube-scheduler-<ip>.ec2.internal" is not healthy

1 Ответ

0 голосов
/ 13 ноября 2018

Тот факт, что перечисление ваших модулей занимает много времени, на самом деле не относится к вашим узлам, поскольку они могут обрабатывать модули в той же степени, в зависимости от ресурсов, которые они имеют такие процессоры и память.

Проблема, которую вымы видим, что kubeapi-server может запрашивать / отвечать на большое количество модулей или ресурсов.

Таким образом, здесь есть два спорных момента: kube-apiserver и т. д., где указано состояние для всего в кластере Kubernetes.хранится.Таким образом, вы можете сосредоточиться на оптимизации этих двух компонентов, и чем быстрее вы получите ответы, скажем, kubectl get pods (Сеть является еще одним спорным вопросом, но это если вы запускаете команды kubectl из медленного широкополосного соединения).

Выможно попробовать:

  • Настройка внешнего кластера etcd HA с довольно мощными машинами и быстрыми дисками.

  • Обновитемашины, на которых живут kubeapi-server.

  • Следуйте инструкциям, приведенным выше .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...