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

Предисловие: - Однонодовый k3s. Ubuntu server. - На хосте 2 сетевых

интерфейса. На одном внешний ip. На втором внутренний.
- В k3s при установке выключен и serviceLb и traefik.
- Установлен cilium.
- Так же установлен metallb с 2мя пулами /32 и привязкой их к интерфейсам хоста через L2Advertisement. Metallb ставил по причине того, что цилиумовский lb не умеет в /32 сеть.
- В качестве ингреса стоит istio. В нем должно быть 2 gateway (для внешних сервисов и внутренних). Соответственно для каждого gateway через конфиг IstioOperator сделал по 1 ingressGateways с указанием через аннотацию Metallb из какого пула брать ip.

Проблема:
1й ingressGateways c внешним ip спокойно его получает и работает.
А 2й постоянно моргает статусом pending и растет счетчик назначений.
В логах metallb speaker летят записи:
{"caller":"main.go:418","event":"serviceWithdrawn","ip":["192.168.0.116"],"level":"info","msg":"withdrawing service announcement","reason":"noIPAllocated","ts":"2023-10-14T13:50:20Z"}
{"caller":"service_controller.go:103","controller":"ServiceReconciler","end reconcile":"istio-system/istio-ingressgateway-internal","level":"info","ts":"2023-10-14T13:50:20Z"}
{"caller":"service_controller.go:60","controller":"ServiceReconciler","level":"info","start reconcile":"istio-system/istio-ingressgateway-internal","ts":"2023-10-14T13:50:20Z"}
{"caller":"main.go:374","event":"serviceAnnounced","ips":["192.168.0.116"],"level":"info","msg":"service has IP, announcing","pool":"internal-pool","protocol":"layer2","ts":"2023-10-14T13:50:20Z"}
В логах metallb controller:
{"caller":"main.go:107","event":"serviceUpdated","level":"info","msg":"updated service object","ts":"2023-10-14T13:56:20Z"}
{"caller":"service_controller.go:103","controller":"ServiceReconciler","end reconcile":"istio-system/istio-ingressgateway-internal","level":"info","ts":"2023-10-14T13:56:20Z"}
{"caller":"service_controller.go:60","controller":"ServiceReconciler","level":"info","start reconcile":"istio-system/istio-ingressgateway-internal","ts":"2023-10-14T13:56:20Z"}
{"caller":"service_controller.go:103","controller":"ServiceReconciler","end reconcile":"istio-system/istio-ingressgateway-internal","level":"info","ts":"2023-10-14T13:56:20Z"}
{"caller":"service_controller.go:60","controller":"ServiceReconciler","level":"info","start reconcile":"istio-system/istio-ingressgateway-internal","ts":"2023-10-14T13:56:20Z"}
{"caller":"service.go:142","event":"ipAllocated","ip":["192.168.0.116"],"level":"info","msg":"IP address assigned by controller","ts":"2023-10-14T13:56:20Z"}

Вопрос:
подскажите пожалуйста в какую сторону копать?

8 ответов

41 просмотр

К3с не фурыкен, поставь кубеадм

Camoufly- Автор вопроса
George Gaál
К3с не фурыкен, поставь кубеадм

Брал k3s ради экономии ресурсов. Машина одна и важно было, чтобы worker и plane были на одной машине.

Camoufly
Брал k3s ради экономии ресурсов. Машина одна и важ...

Кубеадм ставь, такая же потребность в ресурсах будет, зато гибче. К3с хорош другим

Camoufly- Автор вопроса

м.б. проще запустить два истио гейтвея в режиме хост нетворк с указанием ип внешнего и внутреннего?

Camoufly- Автор вопроса

Для потомков: Вам не нужен metallb. Да cilium'овский lb не поддерживает /32 напрямую. Но можно написать туда всю подсеть, а на сервисы заставить запрашивать только тот ip, который реально есть у ноды, с помощью аннотаций. https://docs.cilium.io/en/stable/network/lb-ipam/#requesting-ips P.S. Я догадываюсь, что делаю глобально полный мусор. Но я всего лишь глупый разработчик, который вынужден этим заниматься в очень сжатые сроки. Заранее прошу прощения у Георгия и других коллег, чьи профессиональные чувства задеты. Спасибо большое за помощь! Отплачу, как устроюсь не на копеечную зп.

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

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

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта