По умолчанию, согласно документации k8s, службам назначается запись DNS A. для имени формы my-svc.my-namespace.svc.cluster-domain.example
.
Есть ли команда для получения полного имени службы?
По умолчанию, согласно документации k8s, службам назначается запись DNS A. для имени формы my-svc.my-namespace.svc.cluster-domain.example
.
Есть ли команда для получения полного имени службы?
Вы можете сделать DNS-запрос из любого модуля и получить полное доменное имя.
# nslookup api-server
Server: 10.96.0.10
Address: 10.96.0.10#53
Name: api-server.default.svc.cluster.local
Address: 10.104.225.18
root@api-server-6ff8c8b9c-6pgkb:/#
cluster-domain.example
— это просто пример в документации. cluster.local
— назначенный по умолчанию домен кластера. Таким образом, полное доменное имя любой службы по умолчанию будет <service-name>.<namespace>.svc.cluster.local
.
Вам не нужно использовать полное доменное имя для доступа к службам — для служб в том же пространстве имен будет достаточно только имени службы. Для сервисов в других пространствах имен будет достаточно <service-name>.<namespace>
, так как kubernetes автоматически настроит поисковые домены DNS.
-n dev
и -n prod
. Я знаю, что полное доменное имя будет db-service.dev.svc.cluster.local
и db-service.prod.svc.cluster.local
соответственно, но как мне использовать nslookup в этом сценарии?
- person Juliano Costa; 02.01.2020
nslookup db-service.dev
или nslookup db-service.prod
- person Shashank V; 02.01.2020
** server can't find xxx: NXDOMAIN
, где xxx - это имя службы.
- person Juliano Costa; 02.01.2020
master $ kubectl exec -it redis -- nslookup redis-service.default nslookup: can't resolve '(null)': Name does not resolve Name: redis-service.default Address 1: 10.107.229.159 redis-service.default.svc.cluster.local
- person Juliano Costa; 02.01.2020