Краткое содержание предыдущих серий: если при инициализации через kudeadm кластера нет (или не указан) существующий etcd, то будет создан статический под etcd с конфигом /etc/kubernetes/manifests/etcd.yaml, ну и мне тут втирают, что с таким подом можно всё равно HA кластер сделать (то есть добавить ещё control plane узлы), но я попробовал на практиче, и это не работает, так как сертификаты etcd сервера будут только на один айпи, и другие узлы получат ошибку джойна
А зачем вообще спорить об этой херне, если это даже звучит как ересь? Есть официальный флоу, как сетапить HA кластер с etcd - https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/setup-ha-etcd-with-kubeadm/ Почему не следовать ему?
Это external topology. Спор про stacked topology.
Ну всё выросло с того, что тут было заявлено что "статичный pod etcd в кластере - по дефолту". Что это ересь я согласен)
Это не ересь, это называется stacked topology и это дефолтное поведение
Нет, это stacked или external - зависит от того, на тех же хостах etcd что и k8s api, или на раздельных
Stacked = на тех же хостах, внутри кластера
Не внутри кластера (по крайней мере не обязательно)
Посмотри видео, что я скинул, тайм код 20:00, там 2 etcd пода внутри кластера, так как 2 мастера (но лучше было сделать 3 для HA). Это stacked topology.
Я видел, но мне нужно будет разглядеть как кластер инициализировался
Да, есть в этом же видео. Принципиально за 2 года ничего не изменилось
Так, признаю, был не прав - на видео есть обход проблемы невалидного сертификата
Без проблем, без обид, ничего личного, я просто на одном из прошлых проектов поднимал на hetzner и тестил все это, используя именно stacked topology Причем я автоматизировал это terraform и ansible, как init так и join у меня делались из ansible И еще я использовал hetzner CCM чтобы иметь возможность создавать load balancerы и volume от hetzner cloud с этим моим кластером.
Ну у меня что-то не так подымается, я подключил второй мастер, но там etcd падает, так как пытается подняться на айпи первого мастера, что-то не так с конфигурацией.
Я думаю, проблема в init команде (параметрах) или в сети между двумя нодами. В init нужно правильно указать --apiserver-advertise-address и --control-plane-endpoint
Наверное дело в apiserver-advertise-address, я его не указывал в ините, ща переделаю
И если я не ошибаюсь, ноды еще должны друг друга пинговать по hostname.
А, там некоторый "читинг" в видео - чел использует ещё один узел, так сказать внешний балансировщик с haproxy. Без этого, похоже, и будет проблема crashloop etcd.
Да, а он необходим. Считай вот у тебя есть воркеры. Они обращаются к api server. Но к какому именно? Ни к какому конкретно они обращаться не могут. Так как если этот конкретный, к которому они обращаются, упадет, то воркеры потеряют control plane. Обязательно нужен HA балансировщик на api server. Балансировщик должен быть HA, чтобы он не стал single point of failure. Зачем нам 3 мастера, если на них 1 балансировщик? Вот его адрес ты и указываешь в control-plane-endpoint. И к нему обращаются все остальные
Обсуждают сегодня