Кубернетес: ERR_NAME_NOT_RESOLVED - PullRequest
0 голосов
/ 25 февраля 2019

Я развернул в GKE приложение mongo db, Spring Boot BE, Angular.Моя служба FE является балансировщиком нагрузки, она должна соединиться с моим BE для получения данных, но в моем браузере появляется ошибка консоли: GET http://contactbe.default.svc.cluster.local/contacts net :: ERR_NAME_NOT_RESOLVED .Моему FE нужно использовать конечную точку / contacts для получения данных.Я использую DNS из своего сервиса BE (contactbe.default.svc.cluster.local) в своем приложении Angular.Это мой файл yml, который я использовал для создания своего развертывания:

apiVersion: v1
kind: Service
metadata:
  name: mongo
  labels:
    run: mongo
spec:
  type: NodePort
  ports:
  - port: 27017
    targetPort: 27017
    protocol: TCP
  selector:
    run: mongo
---
apiVersion: apps/v1beta1
kind: Deployment
metadata: 
  name: mongo
spec:
  template:
    metadata:
      labels:
        run: mongo
    spec:
      containers:
      - name: mongo
        image: mongo
        ports:
        - containerPort: 27017
---        
apiVersion: v1
kind: Service
metadata:
  name: contactbe
  labels:
    app: contactbe
spec:
  type: NodePort 
  ports:
  - port: 8181
    targetPort: 8181
    protocol: TCP
  selector:
    app: contactbe
---
apiVersion: apps/v1beta1
kind: Deployment
metadata: 
  name: contactbe
spec:
  template:
    metadata:
      labels:
        app: contactbe
    spec:
      containers:
      - name: contactbe
        image: glgelopfalcon/k8s_contactbe:latest
        ports:
        - containerPort: 8181
---
apiVersion: apps/v1beta1 # for versions before 1.9.0 use apps/v1beta2 
kind: Deployment 
metadata: 
  name: angular-deployment 
spec: 
  selector: 
    matchLabels: 
      app: angular 
  replicas: 2 # tells deployment to run 2 pods matching the template 
  template: 
    metadata: 
      labels: 
        app: angular 
    spec: 
      containers: 
      - name: angular 
        image: glgelopfalcon/my-angular-app:latest 
        ports: 
        - containerPort: 80
--- 
# https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service  
kind: Service 
apiVersion: v1 
metadata: 
  name: angular-service 
spec: 
  selector: 
    app: angular 
  ports: 
  - port: 80
    targetPort: 80
    protocol: TCP
  type: LoadBalancer 

Я много гуглил, но до сих пор не нашел, как решить эту проблему.Буду признателен, если кто-то может помочь.

Ошибка консоли

Ответы [ 3 ]

0 голосов
/ 25 февраля 2019

номер порта отсутствует в URL.попробуйте ниже

contactbe.default.svc.cluster.local:8181/contacts
0 голосов
/ 28 февраля 2019

Я нашел решение.Я изменил вид сервиса из моего Backend.Вместо ClusterIP я использую балансировщик нагрузки, он работает как положено

0 голосов
/ 25 февраля 2019

проверьте, есть ли в вашем балансировщике нагрузки открытый порт 27017 в качестве запроса на отправку на порт 27017

в противном случае вы можете изменить порт сервисного узла на 80, и целевой порт будет таким же

...