Я новичок в Kubernetes и пытаюсь создать простое интерфейсное приложение, в котором интерфейс и сервер будут иметь свои собственные сервисы.По какой-то причине я не могу получить доступ к серверной службе по ее имени из интерфейсной службы.
Просто из-за простоты интерфейсную службу можно создать следующим образом:kubectl run curl --image=radial/busyboxplus:curl -i --tty
Когда я делаю nslookup, я получаю следующее:
[ root@curl-66bdcf564-rbx2k:/ ]$ nslookup msgnc-travel
Server: 10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local
Name: msgnc-travel
Address 1: 10.100.171.209 msgnc-travel.default.svc.cluster.local
Сервис доступен по имени msgnc-travel, но когда я пытаюсь его свернуть:curl msgnc-travel
он просто продолжает ждать, и ответ не получен.Я также пыталсяcurl 10.100.171.209
и curl msgnc-travel.default.svc.cluster.local
но у меня такое же поведение
Есть идеи, почему возникает эта проблема?
Мне удалось успешно выполнить «обходной путь» с помощью Ingress, но мне любопытно, почему я не могу получить доступ к своему внутреннему сервису Spring Boot напрямую, просто указав его имя?
deploy.yml выглядит так:
apiVersion: apps/v1
kind: Deployment
metadata:
name: msgnc-travel-deployment
labels:
name: msgnc-travel-deployment
app: msgnc-travel-app
spec:
template:
metadata:
name: msgnc-travel-pod
labels:
name: msgnc-travel-pod
app: msgnc-travel-app
spec:
containers:
- name: msgnc-travel
image: bdjordjevic/msgnc-travel
ports:
- containerPort: 8080
replicas: 1
selector:
matchExpressions:
- {key: name, operator: In, values: [msgnc-travel-pod]}
- {key: app, operator: In, values: [msgnc-travel-app]}
service.yml выглядит так:
apiVersion: v1
kind: Service
metadata:
name: msgnc-travel
labels:
name: msgnc-travel-service
app: msgnc-travel-app
spec:
ports:
- port: 8080
targetPort: 8080
selector:
name: msgnc-travel-pod
app: msgnc-travel-app