Size: a a a

Kubernetes — русскоговорящее сообщество

2020 October 20

AV

Andrey Vinogradov in Kubernetes — русскоговорящее сообщество
corsars
И надежности кластера как не бывало
а это почему? потому что читаемости меньше?
источник

AM

Alexey Mravyan in Kubernetes — русскоговорящее сообщество
Привет!
Есть две ноды, на каждой по 4 pv типа local-storage и statefulset из двух реплик, создающий себе по 4 pvc на реплику. Периодически наблюдаю ситуацию, что к pvc биндится pv с соседней ноды (на скриншоте), в результате чего запуск подов блокируется.
Не могу придумать, как исключить подобное поведение на уровне statefulset (без ручного вмешательства в pvc, чтобы не указывать там volumeName). У кого-то есть идеи?
источник

SM

Sergey Monakhov in Kubernetes — русскоговорящее сообщество
Alexey Mravyan
Привет!
Есть две ноды, на каждой по 4 pv типа local-storage и statefulset из двух реплик, создающий себе по 4 pvc на реплику. Периодически наблюдаю ситуацию, что к pvc биндится pv с соседней ноды (на скриншоте), в результате чего запуск подов блокируется.
Не могу придумать, как исключить подобное поведение на уровне statefulset (без ручного вмешательства в pvc, чтобы не указывать там volumeName). У кого-то есть идеи?
а как у вас pv создан для local-storage? афинити имеется?
источник

G

Grigoriy in Kubernetes — русскоговорящее сообщество
Alexey Mravyan
Привет!
Есть две ноды, на каждой по 4 pv типа local-storage и statefulset из двух реплик, создающий себе по 4 pvc на реплику. Периодически наблюдаю ситуацию, что к pvc биндится pv с соседней ноды (на скриншоте), в результате чего запуск подов блокируется.
Не могу придумать, как исключить подобное поведение на уровне statefulset (без ручного вмешательства в pvc, чтобы не указывать там volumeName). У кого-то есть идеи?
Local Persistent Volumes c volumeBindingMode: WaitForFirstConsumer
источник

S

Stefan in Kubernetes — русскоговорящее сообщество
добрый день! а кто сталкивался с проблемой обновления нод групп(AWS ASG(Spots)), когда подымаешь капасити в два раза всё хорошо, но когда понижаешь её, чтоб остались только новые ноды, когда старые ноды умирают, все поды рекриейтятся полностью(без блу грин), как следствие ловлю даунтайм, так как нжинксы переподымаются, а ELB логично рапартует что ноды OutOfService так как хелсчек не могут пройти, через какое-то время всё возобновляется

можно это как-то обойти всё же? или с этим так и живут?
источник

AM

Alexey Mravyan in Kubernetes — русскоговорящее сообщество
Grigoriy
Local Persistent Volumes c volumeBindingMode: WaitForFirstConsumer
🤦‍♂️ровно такое storageClass был уже, снес его в какой-то момент вместе с pv. Вернул, теперь все ок)
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Stefan
добрый день! а кто сталкивался с проблемой обновления нод групп(AWS ASG(Spots)), когда подымаешь капасити в два раза всё хорошо, но когда понижаешь её, чтоб остались только новые ноды, когда старые ноды умирают, все поды рекриейтятся полностью(без блу грин), как следствие ловлю даунтайм, так как нжинксы переподымаются, а ELB логично рапартует что ноды OutOfService так как хелсчек не могут пройти, через какое-то время всё возобновляется

можно это как-то обойти всё же? или с этим так и живут?
а ноды кто дропает?  если cluster-autoscaler , то он перед этим эвакуирует поды из ноды. Тут конечно нужен pod distribution budget для надежности
А если у тебя ноды просто дропаются сторонней тулзой, то k8s об этом ничего не знает, соотвественно pod distribution budget тут не поможет, его как минимум надо комибинировать с pod anti affinity. Хотя это тоже может не спасти, если  например дропнули три ноды, и все реплики приложения были на них.
источник

S

Stefan in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
а ноды кто дропает?  если cluster-autoscaler , то он перед этим эвакуирует поды из ноды. Тут конечно нужен pod distribution budget для надежности
А если у тебя ноды просто дропаются сторонней тулзой, то k8s об этом ничего не знает, соотвественно pod distribution budget тут не поможет, его как минимум надо комибинировать с pod anti affinity. Хотя это тоже может не спасти, если  например дропнули три ноды, и все реплики приложения были на них.
ну ноды дропает в случае апгрейда как раз таки механизм автоскейлинга амкзона
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Stefan
ну ноды дропает в случае апгрейда как раз таки механизм автоскейлинга амкзона
ну то есть не cluster-autoscaler? То есть эвакуации подов не происходит перед дропом ноды?
источник

S

Stefan in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
ну то есть не cluster-autoscaler? То есть эвакуации подов не происходит перед дропом ноды?
видимо не успевают(
источник

S

Stefan in Kubernetes — русскоговорящее сообщество
или я хз, надо тогда копнуть в автоскейлер
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Stefan
видимо не успевают(
cluster-autosclaer не дропает ноду, пока от туда не эвакуюрует все поды. А если не может это сделать, то ноду он не дропнет. Там даже можно задать параметры дрейна, например дрейнить sts или нет.
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Stefan
или я хз, надо тогда копнуть в автоскейлер
я так понял дропает ноды у тебя не автоскейлер k8s. Он дропает например когда в ноде нет необходимости. Также он дропает только ноды, которые им же создавались. Вручную при уменьшении капасити он не должен этого делать.
источник

S

Stefan in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
я так понял дропает ноды у тебя не автоскейлер k8s. Он дропает например когда в ноде нет необходимости. Также он дропает только ноды, которые им же создавались. Вручную при уменьшении капасити он не должен этого делать.
да, как раз для этого я его и юзал, но кейса не замечал с таким даунтаймом, пока больше веб сервисов не завезли в кластер
источник

S

Stefan in Kubernetes — русскоговорящее сообщество
а тут случайно заметил
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Stefan
да, как раз для этого я его и юзал, но кейса не замечал с таким даунтаймом, пока больше веб сервисов не завезли в кластер
pod distribution budget есть для сервисов?
источник

S

Stefan in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
pod distribution budget есть для сервисов?
ноуп
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Stefan
ноуп
ну тогда чего ты хотел. Тогда у тебя нет гарантии что у тебя будет всегда запущено минимальное количество реплик приложения. И cluster-autoscaler спокойно будет эвакуировать под приложения, даже если это приводит к тому, что останется 0 реплик при эвакуации
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Он кстати даже в логах ругается - не могу эвакурировать потому что pod distribution budget. Потом когда новая реплика поднимается - то спокойно дропает под
источник

S

Stefan in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
ну тогда чего ты хотел. Тогда у тебя нет гарантии что у тебя будет всегда запущено минимальное количество реплик приложения. И cluster-autoscaler спокойно будет эвакуировать под приложения, даже если это приводит к тому, что останется 0 реплик при эвакуации
по правде говоря я про pod distribution budget ничего не знал и как-то не было кейса) сейчас читну и покручу) спасибо)
источник