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

Всем привет! А может кто знающий подсказать, мне нужно реврайтить

хост в поде в формате <service-name>.my.subdomain в <service-name>.<some-namespace>.svc.cluster.local. Пробовал патчить coredns строкой:

rewrite name suffix .my.subdomain .stage-01.svc.cluster.local

И это работает если namespace реврайта указан явно, вот только проблема в том, что у меня namespace может меняться...
Как динамически определять namespace в coredns или я не туда вообще прокопал?

18 ответов

11 просмотров
Denis-Postnikov Автор вопроса
Отделение Bereke Bank Ор
Зачем

Есть много сервисов заточеных под consul, они обрабатывают запросы формата <service-name>.local.doman хотелось бы подружить инфраструктуру с кубом без больших переделок

Denis-Postnikov Автор вопроса

need help 😭 Есть кто самурай в kube-dns? Я может чёт не так делаю? Как обычно решают вопросы резолва внутреннего dns?

Denis-Postnikov Автор вопроса
Shved
Какие вопросы?

Допустим, я хочу что бы мой сервис в контейнере смог отправлять запросы как по алиасу <service-name>, так и по домену <service-name>.custom.domain. По дефолту, <service-name> резовиться в <service-name>.<namespace>.svc.cluster.local. Как <service-name>.custom.domain тоже заставить резолвиться в <service-name>.<namespace>.svc.cluster.local? Вроде самый очевидный путь это замена суффикса на уровне обработки запроса в coredns, но я так и не понял как эти запроси абстрагировать от namespace...

Denis Postnikov
Допустим, я хочу что бы мой сервис в контейнере см...

А зачем это надо? Хотите сделайте external name.

Denis Postnikov
Допустим, я хочу что бы мой сервис в контейнере см...

hostalias не пробовали добавить в спеку пода и все?

Denis-Postnikov Автор вопроса
Aleksey Lazarev
hostalias не пробовали добавить в спеку пода и все...

Хорошая мысль, только у меня 100+ сервисов, не указывать же их все в hostalias? Да и задача кажеться связана с машрутизацией

Denis-Postnikov Автор вопроса
George Gaál
зачем

Есть много сервисов которые умеют в consul, между собой они общаються через dns формата <service-name>.some.domain в приватной сети. Всё что мне нужно сделать что бы всё это блядство запустить в k8s, это научить резолвить запросы формата <service-name>.some.domain в <service-name>.

Denis-Postnikov Автор вопроса
George Gaál
ну так регай их в консуле

Таки зачем консул если есть нативный Service Discovery?

Denis Postnikov
Есть много сервисов которые умеют в consul, между ...

а попробуй просто создать сервис с точкой в названии в кубе. name.some.domain

Denis-Postnikov Автор вопроса
Denis-Postnikov Автор вопроса
Lucky SB
а попробуй просто создать сервис с точкой в назван...

Всё оказалось прозаичнее. По умолчанию, запись типа some-service резолвяться в some-service.some-namespace.svc.cluster.local которая в свою очеред резолвиться в реальный айпишник сервиса. т.е. задача по сути в том, что бы успеть подменить свой кастомный домен формата some-service.custom.domain до резолва айпишника в some-service который потом разрезолвиться в some-service.some-namespace.svc.cluster.local который потом в айпишник. Так вот, сделать это можно глобально для всех неймспейсов в конфиге coredns при помощи банального rewrite name substring как то так: apiVersion: v1 data: Corefile: | .:53 { errors health { lameduck 5s } ready rewrite name substring .custom.domain . kubernetes cluster.local in-addr.arpa ip6.arpa { pods insecure fallthrough in-addr.arpa ip6.arpa ttl 30 } prometheus :9153 forward . /etc/resolv.conf { max_concurrent 1000 } cache 30 loop reload loadbalance } kind: ConfigMap metadata: name: coredns namespace: kube-system

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

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

Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
А чем вам питонисты не угодили?😂
.
79
Всем привет. Поделитесь, пожалуйста, опытом. Есть форма, на которой имеется dbgrid и кнопки: добавить, редактировать, удалить. Если нет записей в dbgrid, то кнопки редактирова...
Евгений
4
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Вот смотрите у меня есть два стрима сейчас fs, cs: TStream; fs := TFileStream.Create('filename'); cs := TCompressionStream.Create(compression_level, fs); Я хочу сделать так: ...
notme
5
type TExtensions<GExtender>=class function GetExtension<GEntityExtenderType>:GEntityExtenderType; end; function TExtensions<GExtender>.GetExtension<GEntityExtenderType...
zamtmn
8
Всем здравствуйте! Я хотел узнать сколько стоит средняя месячная зарплата у Electron js разработчиков? Мне очень это важно и нужно, плиз помогите узнать эту инфу! Для Джунио...
U.K.
10
Можно ли загрузить скрипт py в бота чтобы он работал по нему? как это сделать?
huskadam #RCC Фанат? @hitlerpvp
13
Карта сайта