Сервис Kubernetes не может общаться друг с другом

Я новичок в Kubernetes, и я попытался создать два сервиса, которые могут общаться друг с другом. Первая служба - это простой статический веб (HTML, js) с типом LoadBalancer, а вторая служба - это серверная часть express.js с типом ClusterIP. Вот мой service.yaml файл:

apiVersion: v1
kind: Service
metadata:
  name: number-generator
spec:
  selector:
    app: number-generator
  ports:
  - port: 3000
    targetPort: 3000
  type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
  name: number-web
spec:
  selector:
    app: number-web
  ports:
  - port: 80
    targetPort: 80
  type: LoadBalancer

А вот мой deployment.yaml файл:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: number-generator
spec:
  selector:
    matchLabels:
      app: number-generator
  template:
    metadata:
      labels:
        app: number-generator
    spec:
      containers:
      - name: number-generator
        image: cantdocpp/number-generator
        ports:
        - containerPort: 3000
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: number-web
spec:
  selector:
    matchLabels:
      app: number-web
  template:
    metadata:
      labels:
        app: number-web
    spec:
      containers:
      - name: number-web
        image: cantdocpp/number-web:v5
        ports:
        - containerPort: 80

Таким образом, внутри службы number-web, к которой можно получить доступ в localhost:80, следует обращаться к number-generator API, чтобы получить случайное число. Я попытался получить к нему доступ с помощью http://number-generator/ и http://number-generator:3000/, но оба они возвращают такую ​​сетевую ошибку:

GET http://number-generator/ net::ERR_NAME_NOT_RESOLVED

Ошибка должна быть более или менее такой же, как я называю http://number-generator/ или http://number-generator:3000/. Итак, как я могу заставить эти две службы общаться друг с другом?


person Being Shame    schedule 21.02.2021    source источник
comment
Удовлетворяет ли ваш запрос, когда вместо http://number-generator:3000 вы пробовали http://number-generator.default.svc.cluster.local:3000?   -  person rkosegi    schedule 21.02.2021
comment
привет @rkosegi, он все еще не работает   -  person Being Shame    schedule 21.02.2021


Ответы (1)


Я только что нашел проблему.

Итак, поскольку я использую статический сайт для внешнего интерфейса, когда я вызываю серверную службу, она фактически вызывает ее из браузера. Браузер не является нашим кластером кубернетов, поэтому, когда я пытался получить доступ к службе генератора чисел с помощью ajax, он отправляет эту ошибку.

Когда я попытался изменить свой статический интерфейс на экспресс-приложение, он получил доступ к внутренней службе генератора чисел, поскольку он включен в кластер.

person Being Shame    schedule 22.02.2021