Я использую обнаружение служб на основе DNS для обнаружения служб в кластере K8s.Из этой ссылки очень ясно, что для обнаружения службы с именем my-service мы можем выполнить поиск по имени "my-service.my-ns", и модуль сможет найти службы.
Однако в случае обнаружения порта для службы, решение, которое нужно использовать, это "_http._tcp.my-service.my-ns", где
_http относится к порту с именем http в my-service.
Но даже после использования _http._tcp.my-service он не разрешает номер порта.Ниже приведена подробная информация.
my-service, которую необходимо обнаружить
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-service
ports:
- name: http
protocol: TCP
port: 5000
targetPort: 5000
фрагмент клиентского сервиса yaml, пытающийся обнаружить my-service и егопорт.
spec:
containers:
- name: client-service
image: client-service
imagePullPolicy: Always
ports:
- containerPort: 7799
resources:
limits:
cpu: "100m"
memory: "500Mi"
env:
- name: HOST
value: my-service
- name: PORT
value: _http._tcp.my-service
Теперь, когда я делаю запрос, он терпит неудачу и регистрирует следующий запрос, который явно неверен, так как не находит номер порта.
http://my-service:_http._tcp.my-service
Яне знаю, что я здесь не так делаю, но я следую инструкциям, упомянутым в документе.
Может кто-нибудь подсказать, что здесь не так и как мы можем обнаружить порт с помощью обнаружения службы на основе DNS?Правильно ли мое понимание здесь, что оно вернет буквальное значение порта?
Сведения о кластере
Версия кластера K8s - 1.11.5-gke.5 и Kube-dnsработает
Дополнительные сведения, пытающиеся обнаружить службу из busybox, но не удается определить значение порта 5000
kubectl exec busybox -- nslookup my-service
Server: 10.51.240.10
Address: 10.51.240.10:53
Name: my-service.default.svc.cluster.local
Address: 10.51.253.236
*** Can't find my-service.svc.cluster.local: No answer
*** Can't find my-service.cluster.local: No answer
*** Can't find my-service.us-east4-a.c.gdic-infinity-dev.internal: No answer
*** Can't find my-service.c.gdic-infinity-dev.internal: No answer
*** Can't find my-service.google.internal: No answer
*** Can't find my-service.default.svc.cluster.local: No answer
*** Can't find my-service.svc.cluster.local: No answer
*** Can't find my-service.cluster.local: No answer
*** Can't find my-service.us-east4-a.c.gdic-infinity-dev.internal: No answer
*** Can't find my-service.c.gdic-infinity-dev.internal: No answer
*** Can't find my-service.google.internal: No answer
kubectl exec busybox -- nslookup _http._tcp.my-service
Server: 10.51.240.10
Address: 10.51.240.10:53
** server can't find _http._tcp.my-service: NXDOMAIN
*** Can't find _http._tcp.my-service: No answer