Как смоделировать nodeNotReady для узла в Kubernetes - PullRequest
0 голосов
/ 20 июня 2019

Мой кластер ceph работает на AWS с конфигурацией 3 masters 3 workers.Когда я делаю kubectl get nodes, он показывает мне все узлы в состоянии ready.Есть ли способ, которым я могу моделировать вручную, чтобы получить nodeNotReady ошибку для узла?.

Ответы [ 3 ]

0 голосов
/ 21 июня 2019

Если вы просто хотите NodeNotReady, вы можете удалить CNI, который вы установили.kubectl get all -n kube-system найдите DaemonSet вашего CNI и удалите его или просто сделайте обратную установку: kubectl delete -f link_to_your_CNI_yaml

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

Об ответе от P Ekambaram вы можете просто ssh добраться до узла и затем остановить kubelet.

Чтобы сделать это в копях, вы можете просто:

ssh -A admin@Node_PublicDNS_name

systemctl stop kubelet

РЕДАКТИРОВАТЬ: Другой способ заключается в перегрузке узла, что приведет к: System OOM encountered, что приведет к состоянию Node NotReady.Это только один из способов достижения этого: SSH в узел, который вы хотите ввести в NotReady. Установка Напряжение Запустить стресс: stress --cpu 8 --io 4 --hdd 10 --vm 4 --vm-bytes 1024M --timeout 5m (вы можете изменить значения, конечно). Дождитесь сбоя узла.,После прекращения стресса Узел должен автоматически вернуться в здоровое состояние.

0 голосов
/ 05 июля 2019

Не уверен, с какой целью симулировать NotReady

  1. если цель не состоит в том, чтобы планировать какие-либо новые модули, то вы можете использовать kubectl cordon node NODE_NAME. Это добавит непередаваемое загрязнение и предотвратит планирование новых модулей.
  2. Если цель состоит в том, чтобы выселить существующую капсулу, вы можете использовать kubectl drain NODE_NAME

В общем, вы можете играть с порками и терпимостью , чтобы достичь своей цели, связанной с вышеизложенным, и вы можете гораздо больше с ними!

Теперь NotReady статус исходит от заражения node.kubernetes.io / not-ready Ref Который установлен

В версии 1.13 функция TaintBasedEvictions переведена в бета-версию и включена по умолчанию, поэтому порты автоматически добавляются NodeController

Поэтому, если вы хотите вручную установить этот вред kubectl taint node NODE_NAME node.kubernetes.io/not-ready=:NoExecute, NodeController сбросит его автоматически!

Таким образом, чтобы полностью увидеть статус NotReady , этот - лучший способ

Наконец, если вы хотите удалить свою сеть в определенном узле, вы можете испортить это следующим образом kubectl taint node NODE_NAME dedicated/not-ready=:NoExecute

0 голосов
/ 20 июня 2019

просто остановите службу kebelet на одном из узлов, который вы хотите видеть как NodeNotReady

...