172 похожих чатов

Всем привет, ребят. Начал изучать технологию Kubernetes. Установил домашний полигон в виде

виртуальных машин на VMWare с Debian 10.
Использую kubeadm для настройки. Контейнеризация Docker. Хост Windows 10 :D
Хочу попробовать сделать "HA Cluster" (в учебных целях), из 3 ETCD (в виде отдельного кластера), 3 MASTER, 3 WORKER.
Документация и другие статьи в сети говорят, что должен быть LoadBalancer между MASTER и WORKER узлами кластера.
А так же, должен быть доступ к кластеру и приложениям работающим в контейнерах извне. (который настраивается индивидуально под задачи)
Я понял, что это достигается за счет таких сущностей как Service\Ingress. И что по сути это просто правила маршрутизации iptable, а ingress это правила на основании которого сгенерируется конфиг для ingress controller, который сам является контейнеризированным приложением, который будет "роутить" трафик к PODs.
И тут случилось оно ... я запутался :D
Подскажите, можно ли как то совместить и балансировку между master\worker нодами и доступ извне к кластеру и роутинг, в одной сущности, например, с помощью ingress nginx.
Или это глупость, так делать нельзя и вообще так работать ничего не будет.
Я знаю, что можно использовать, вроде как "hostnetwork true". Но, что указывать в опции --control-plane-endpoint = ? при инициализации )))
Еще смущает, что пишут про nginx L7, а хотелось бы не только с HTTP\HTTPS работать.
Ребят, помогите разобраться. Хочется какой то прозрачности и однозначности в этом вопросе. 🙂

65 ответов

17 просмотров

https://metallb.universe.tf/

DarkPerl- Автор вопроса
Андрей А
https://metallb.universe.tf/

Спасибо, сейчас почитаю

DarkPerl
Спасибо, сейчас почитаю

и вместо nginx ingress можно использовать другие

DarkPerl
HAProxy ?

https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/

DarkPerl- Автор вопроса
DarkPerl
Благодарю, Андрей.

Не слушай его. Он тебя плохому учит )

Lucky SB
Не слушай его. Он тебя плохому учит )

возможно, предлагай варианты, мне самому интересно, но я скинул то, что сам юзаю

DarkPerl- Автор вопроса
Lucky SB
Не слушай его. Он тебя плохому учит )

Я благодарен любой помощи )))

DarkPerl
HAProxy ?

чтобы не было недопонимания, ссылку на ingress controllers я скинул когда ты спросил про "Еще смущает, что пишут про nginx L7, а хотелось бы не только с HTTP\HTTPS работать."

DarkPerl- Автор вопроса
Андрей А
чтобы не было недопонимания, ссылку на ingress con...

Есть пример, где через HAProxy настраивается балансировка между мастерами и воркерами. Я думал, что есть другие варианты ) Видимо, без него никак в HA Cluster, ну или без ему подобного

DarkPerl
Есть пример, где через HAProxy настраивается балан...

ну вот в kubespray HA из коробки, тоже смотрел когда-то

DarkPerl- Автор вопроса
Андрей А
ну вот в kubespray HA из коробки, тоже смотрел ког...

Я решил пойти путем через kubeadm ) Kuberspray для меня показался хм магией ))) Но, думаю, разобраться чуть позже надо )

DarkPerl
Я решил пойти путем через kubeadm ) Kuberspray для...

там просто очень много всего и надо разбираться, советую попробовать

DarkPerl- Автор вопроса
Андрей А
там просто очень много всего и надо разбираться, с...

Я хочу самый самый минимум сначала сделать ) Когда пойму как этот конструктор собирать ) Мне знакомый сказал, что ты паришься, есть облако ) Но, я с ним не согласен ) Я должен понимать, как эта штука работает )

DarkPerl- Автор вопроса
George Gaál
правильно - кбьюспрей магия

Я только не совсем понимаю, почему, когда видео смотришь про кубспрей, у человека что то долго все ставится ) Или мне кажется или там под капотом столько всего настраивается\качается и тд и тп ))) А когда смотришь на kubeadm то там всего делов то для базовой настройки кластера )))

DarkPerl
Я только не совсем понимаю, почему, когда видео см...

ансибля - медленная. спрей доставляет нужные пакеты, ставит докер, качает образы - все это доп. время, которое не учитывается при установке руками кубадма.

DarkPerl- Автор вопроса
Lucky SB
ансибля - медленная. спрей доставляет нужные паке...

Я так и думал, спасибо ) А без ансибли сейчас как я понял никуда !?) Стандартный DevOps инструментарий ?)

отдельный балансировщик между мастерами не нужен, это плохой совет в доках. Ставь просто на каждый воркер балансировщик, а сам kubelet на этом воркере будет контектится к локальному балансировщику. Самый надежный способ и не нужны лишние сущности для его реализации. metallb крайне не советую. Из вне, доступ к kube-apiserver через ingress-controller можно сделать - дело вкуса.

DarkPerl- Автор вопроса
DarkPerl
Благодарю, Дмитрий ) Буду разбираться )

вот еще странность. я не вижу никаких причин не добавить возможность в kubelet подключаться к нескольким kube-apiserver. Но почему-то до сих пор этого нет, и приходится городить локальные балансировщики 🤷. А новички продолжают страдать от этого совета в доках

DarkPerl- Автор вопроса
Dmitry Sergeev 🇺🇦
вот еще странность. я не вижу никаких причин не до...

Я осмелюсь предположить, что это может сломать обратную совместимость, хотя, она на сколько я понял и так +- 1 )))

DarkPerl
Я осмелюсь предположить, что это может сломать обр...

Ее нет, все так, а запилить не через отдельный фичагейт - нет проблем

DarkPerl- Автор вопроса
George Gaál
Ее нет, все так, а запилить не через отдельный фич...

А писали уже разработчикам ?) Может, они ждут от пользователей писем с просьбами прикрутить фичу )))

Dmitry Sergeev 🇺🇦
а причем тут днс?

Ну вот как бы ты сделал: по одному имени на каждый апи ендпоинт или три А записи в одном имени?

DarkPerl
Я осмелюсь предположить, что это может сломать обр...

Да это не проблема. Там же все версионируется. В новой схеме будет просто apiVersion: v1beta kind: Config А не apiVersion: v1

DarkPerl- Автор вопроса
Dmitry Sergeev 🇺🇦
Да это не проблема. Там же все версионируется. В н...

Я не настолько еще искушен ))) Кстати, нужно глянуть версии ) Кхе-кхе ) Совсем про них забыл )

Artem Dwski
Ну вот как бы ты сделал: по одному имени на каждый...

причем тут ДНС я так и не понял. В конфиге вместо server: host, servers: [host1, host2, host3]. А что под host1, host2, host3 ип адреса или домены, это уже вопрос другой и не имеет значения

DarkPerl
Я осмелюсь предположить, что это может сломать обр...

Обратная совместимость это 2 лишних строчки в темплейте {{- if semverCompare "<1.16.0" .Capabilities.KubeVersion.GitVersion }} apiVersion: extensions/v1beta1 {{- else }} apiVersion: apps/v1 {{- end }}

Dmitry Sergeev 🇺🇦
В чем сложность?

Ну просто выглядит как лишняя ненужная работа

Artem Dwski
Ну просто выглядит как лишняя ненужная работа

а выписывать сертификат на одно имя сильно проще чем на три имени? Не понял в чем сложность =). Как была O(n) так и осталась

Dmitry Sergeev 🇺🇦
а выписывать сертификат на одно имя сильно проще ч...

Ну просто смысла не вижу. Если конечно у тебя нет сумасшедших идей вроде «один кубелет взаимодействует с несколькими кластерами»

Artem Dwski
Ну просто смысла не вижу. Если конечно у тебя нет ...

Смысл в том, чтобы не поднимать балансировщик на каждом воркере

Artem Dwski
Ну просто смысла не вижу. Если конечно у тебя нет ...

Тяжелыми видами наркотиков пахнет (я про кросс-кластерное взаимодействие)

Solyar
Тяжелыми видами наркотиков пахнет (я про кросс-кла...

про него тут речи не было. Он сам его выдумал

Dmitry Sergeev 🇺🇦
Смысл в том, чтобы не поднимать балансировщик на к...

это не проблема ) потому что делается один раз

George Gaál
это не проблема ) потому что делается один раз

только в доках об этом не пишут. А толкают внешний балансировщик - в этом проблема

DarkPerl
Я только не совсем понимаю, почему, когда видео см...

ansible потому что и очень много всего там. Я думаю если напишешь свой playbook будет в разы быстрее. Но на самом деле вариантов много. Например rke/rke2, pke

DarkPerl- Автор вопроса
Dmitry Sergeev 🇺🇦
ansible потому что и очень много всего там. Я дума...

До Rancher еще не добрался )) Через kubeadm руками пробую )

Dmitry Sergeev 🇺🇦
ansible потому что и очень много всего там. Я дума...

многоо ? вот коллега мучался, что модуль для куба сломан

DarkPerl
До Rancher еще не добрался )) Через kubeadm руками...

rke/rke2 можно сетапить просто кластер и не ставить rancher. На самом деле эти тулзы его и не ставят, он отдельно чартом ставится - если нужен

Dmitry Sergeev 🇺🇦
rke/rke2 можно сетапить просто кластер и не ставит...

Как рке отреагировал на новость о докере? Там же полная завязка на него

Dmitry Sergeev 🇺🇦
отдельный балансировщик между мастерами не нужен, ...

сейчас для сервисов типа LoadBalancer (например сервис от nginx ingress controller) использую metallb чтобы он external ip выдавал, если без metallb то как это лучше реализовать?

Dmitry Sergeev 🇺🇦
hostNetwork: true

спасибо. почитал, и как я понял смысл тут в том, что не стоит усложнять схему когда и так понятно, что ингресс контроллер будет висеть на всех интерфейсах и тогда metallb не нужен. также посмотрю в сторону hostPort вместо hostNetwork, кажется более секурно. все верно понял?)

Dmitry Sergeev 🇺🇦
hostPort это просто проброс портов через nat

а, окей, а то где-то читал, что это похоже на hostNetwork. а насчет ingress controller я так понял, что и сервис для него него не нужен и запускать надо через DaemonSet судя по доке вот тут https://kubernetes.github.io/ingress-nginx/deploy/baremetal/

George Gaál
Необязательно демонсетом

в общем-то можно просто на одной ноде запустить, так?

Андрей А
в общем-то можно просто на одной ноде запустить, т...

Лучше на двух ) чтобы если сложится - у тебя балансировка снаружи не отвалилась

George Gaál
Лучше на двух ) чтобы если сложится - у тебя балан...

ок спасибо, а если нужно udp то он nginx ingress лучше отказаться и смотреть в сторону envoy?

Андрей А
а, окей, а то где-то читал, что это похоже на host...

ну если у тебя сеть хоста, то конечно сервис не нужен. Только если для внутренних коммуникаций, например метрики собирать

Dmitry Sergeev 🇺🇦
ну если у тебя сеть хоста, то конечно сервис не ну...

спасибо, попробую сегодня заменить этим всем metallb)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта