хост в поде в формате <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 или я не туда вообще прокопал?
Зачем
Есть много сервисов заточеных под consul, они обрабатывают запросы формата <service-name>.local.doman хотелось бы подружить инфраструктуру с кубом без больших переделок
need help 😭 Есть кто самурай в kube-dns? Я может чёт не так делаю? Как обычно решают вопросы резолва внутреннего dns?
Допустим, я хочу что бы мой сервис в контейнере смог отправлять запросы как по алиасу <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...
А зачем это надо? Хотите сделайте external name.
hostalias не пробовали добавить в спеку пода и все?
Хорошая мысль, только у меня 100+ сервисов, не указывать же их все в hostalias? Да и задача кажеться связана с машрутизацией
Есть много сервисов которые умеют в consul, между собой они общаються через dns формата <service-name>.some.domain в приватной сети. Всё что мне нужно сделать что бы всё это блядство запустить в k8s, это научить резолвить запросы формата <service-name>.some.domain в <service-name>.
ну так регай их в консуле
Таки зачем консул если есть нативный Service Discovery?
а попробуй просто создать сервис с точкой в названии в кубе. name.some.domain
Это не валидное название
Ты проверял?
Всё оказалось прозаичнее. По умолчанию, запись типа 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
Обсуждают сегодня