что созданных нод стабильно получаю ответ "node not labeled".
Можно как-то увеличить verbosity и увидеть причину на стороне kubectl или есть только вариант смотреть на стороне kubelet/логов ноды?
Разобрался, делюсь, может кому будет полезно. Опция "--overwrite" применимо к endpoint "node-role.kubernetes.io/" не работает, как для остальных ресурсов Также в этот endpoint нельзя этот лейбл передать при запуске ноды. https://github.com/kubernetes/kubernetes/issues/84912#issuecomment-551362981 Надо сказать дока как-то не очень нашлась, разве что https://jamesdefabia.github.io/docs/user-guide/kubectl/kubectl_label/ но эта не даёт информации по моему кейсу и удивительно, но сходу вопрос "kubectl label node" + "node not labeled" не нагуглился. Итак можно удалить обычным способом, т.е. "node-role.kubernetes.io/-" (тире/минус вместо лейбла, если кто не знал) и добавить "node-role.kubernetes.io/abc=abc" и это можно проделывать последовательно сколько угодно раз подряд и тут что указывать опцию --overwrite что нет без разницы. Но если попытаться два раза подряд одинаковый label + endpoint="node-role.kubernetes.io" создать/применить, то ответ будет "node not labeled". Далее как я и предполагал у меня ноды создавались слишком быстро, но не успевали появляться/полноценно регистрироваться достаточно быстро с теми базовыми лейблами, которые я им при установке передавал в параметре kubelet (например, worker=worker). https://rancher.com/docs/k3s/latest/en/installation/install-options/agent-config/#node --node-label Поэтому у меня по факту новые лейблы которые node-role.kubernetes.io/abc=abc все таки проставлялись, но с отставанием на 1 ноду, а последняя давала отлуп "node not labeled" т.к. оказывалась в списке дважды, а к первой в списке лейбл ни разу не пытался премениться: специфика того, что я запрашивал список готовых нод сразу после каждой созданной с помощью kubectl wait, а данных ещё не было. :)
ты же в курсе что node-role.kubernetes.io это не endpoint а просто часть имени лейбла?
как много слов, чтобы проставить лейблы на ноды =)
Почему-то называю endpoint, ведь это endpoint? :) Это не просто часть имени лейбла, если у него другие правила обработки.
k get ep - вот это endpoint
Ты правда думаешь что в апи добавили что то из серии if label like then go to antoher api?
у лейблов с *.kubernetes.io и правда другие правила обработки (kubelet сам себе не может их проставить). Сделано это для безопасности. Но от этого эти имена лейблов не становятся endpoints
Называйте как хотите, главное что вы поняли о чём речь. Для чего, что и когда сделано написано в GitHub issue которое я привёл. https://github.com/kubernetes/kubernetes/issues/84912#issuecomment-551362981
Обсуждают сегодня