Andor
ну да, на этой схеме коннекты до аписервера имеют смысл, а всё что под ним - другая тема
Alex
инженерам ещё стоит качать навык "уметь продать решение", а не плакать, что их не слушают
это манагерам надо качать навык "умение слушать". Если меня не слушают - мне проще сменить работодателя
Artyom
Стоп, а етсд как-то отдельно резервировать для НА надо?
𝚔𝚟𝚊𝚙𝚜
предлагаю етцд убрать из схемы :)
не, он важен, т.к. по умолчанию api-server стучится в 127.0.0.1:2379, то есть если etcd умрет, умрет и связанный с ним api-server
Alex
@Andorka я тоже
Andor
не, он важен, т.к. по умолчанию api-server стучится в 127.0.0.1:2379, то есть если etcd умрет, умрет и связанный с ним api-server
а в аписервер нельзя сказать что "вот тебе список адресов где должен быть етцд"?
Andor
ну у тебя и так будет весело, когда два из трёх умрут
Andor
у тебя и в локалхост не будет работать
Andor
но в данном случае это не принципиально конечно
Vadim
ну у тебя и так будет весело, когда два из трёх умрут
угу, но падение одного переживет, так что все же чуть-чуть лучше
Andor
звучит как кластер consul
да они одинаковые
Rainbow
неее
Rainbow
большое отличие - клиент consul стоит на каждом хосте, а не пару мастеров, куда никто не ходит
Andor
угу, но падение одного переживет, так что все же чуть-чуть лучше
ну в схеме "подключаемся в локалхост" один упавший етцд = один упавший аписервер, а в том случае все аписервера на месте будут
Andor
почему развален?
Rainbow
да они одинаковые
haproxy поэтому и используют в k8s, что нет чего-то вроде агента consul на каждом хосте
Andor
толку с них не будет - etcd развален
два етцд живы, один сдох, все аписервера знают про всех и все живы
Rainbow
чо такое "агент консул"?
https://learn.hashicorp.com/assets/images/vault-ref-arch-2.png
Andor
https://learn.hashicorp.com/assets/images/vault-ref-arch-2.png
это ничего не объясняет
Rainbow
это ничего не объясняет
идея consul, что он стоит на каждом хосте кластера приложений. В виде агента к которому хотят по localhost и 3-5 мастеров под consul кластер.
Andor
а ну то есть оно работает проксёй до других сервисочков
Andor
а-ля сервисмеш
Rainbow
Да, решает огромное количество проблем.
Rainbow
Аля да
Andor
только авторства хашимото&ко
Andor
они же относительно недавно это выкатили, до этого у них был шаблонизатор примерно как confd
Rainbow
что именно выкатили? такая схема была всегда
Andor
проксю вот эту
Andor
может не прав, не юзал консул никогда
Rainbow
может не прав, не юзал консул никогда
то consul connect, да прокся, но я про другое. Я в принципе про то, что у k8s нет service discovery нормального и появляются куча костылей в виде haproxy для apiserver на каждой ноде. Это в consul работает изначально by design
Andor
Да один хрен
Михаил
Нездоровое это, когда ты хочешь персистентных данных в Kubernetes. Но почему-то армия таких не убывает, поэтому для них сделали stateful: https://cloud.google.com/kubernetes-engine/docs/how-to/stateful-apps
Vadim
> почему-то армия таких не убывает действительно, очень странно
Vadim
два етцд живы, один сдох, все аписервера знают про всех и все живы
хмм, да, я совсем запутался. У нас disaster recovery и без локалхоста работал
𝚔𝚟𝚊𝚙𝚜
𝚔𝚟𝚊𝚙𝚜
𝚔𝚟𝚊𝚙𝚜
𝚔𝚟𝚊𝚙𝚜
вот, теперь все правильно
𝚔𝚟𝚊𝚙𝚜
хмм, да, я совсем запутался. У нас disaster recovery и без локалхоста работал
Я описываю кейс stacked control plane как деплоит kubeadm по дефолту, он настраисает каждый api-server стучаться в локальный etcd
𝚔𝚟𝚊𝚙𝚜
--etcd-servers=https://127.0.0.1:2379
Игорь
вот, теперь все правильно
А можно в этой схеме заменить haproxy на LVS?
𝚔𝚟𝚊𝚙𝚜
хотя в кейсе с external etcd nodes, по умолчанию туда заносятся все endpoints https://kubernetes.io/docs/setup/independent/high-availability/#set-up-the-first-control-plane-node
𝚔𝚟𝚊𝚙𝚜
Игорь
да
Andrey
Интересно, не задумывался
Andor
да
Что?
Игорь
https://www.keepalived.org/doc/case_study_healthcheck.html
Andor
Это не ipvs
Andor
Это keepalived
Игорь
Это keepalived
ну понятно, хелсчеки в keepalived, балансировка в ipvs
Игорь
или я не так понял что-то
𝚔𝚟𝚊𝚙𝚜
ну понятно, хелсчеки в keepalived, балансировка в ipvs
беглый взгляд показал что да можно, но только там хелсчеки внешние по таймауту раз в n-секунд, haproxy в этом случае лучше, т.к. ни один коннект не потеряется
𝚔𝚟𝚊𝚙𝚜
По какому принципу перебор идёт? Первый доступный?
Там есть возможность использовать разные retry policies, но по умлочанию round-robin.
𝚔𝚟𝚊𝚙𝚜
Полагаю, потому kubeadm и настраивает api-server смотреть в локальный etcd, ибовсе равно запись не завершится пока не запишется хотябы на 2 из 3х etcd нод
Roman
Ребят, привет. Подскажите пожалуйста с чем может быть связано. Участились случаи когда кубер убивает поды с такими причинами: The node was low on resource: ephemeral-storage. и в messages: must evict pod(s) to reclaim ephe meral-storage На всех разделах свободно более 70% (порядка 60-80 gb), с инодами все нормально. Подскажите в какую сторону копать? Рантайм - крио 🙁
𝚔𝚟𝚊𝚙𝚜
А нет, там 10% и 15% для imagefs
𝚔𝚟𝚊𝚙𝚜
https://kubernetes.io/docs/tasks/administer-cluster/out-of-resource/
Timur
не лишний ли тут keepalived ? Понятно зачем он нужен, но схема, когда у тебя на каждой ноде есть haproxy или envoy, которые знают про все apiserver-a - не сказал бы, что сильно менее надежна. Особенно учитывая, что keepalived могу и потерять друг друга и будут два VIP в сети
Andor
на ноде каждого клиента?
Solyar
Ребят, кто может подсказать насчет PV и Elastic, в лс если не сложно :)
N
Всем привет! Есть вопрос про preStop hook. Правильно ли я понимаю, что в момент работы preStop hook трафик все еще распределяется на pod?
Artyom
Если ли возможность сменить порта для api при инициализации через kubeadm? Или он меняется как-то после старта?
Artyom
Нашёл ошибку
Artyom
Извиняюсь за глупый вопрос