A Kubernetes NodePort - это самый простой способ получить внешний трафик непосредственно к вашему сервису.
NodePort, как следует из названия, открывает определенный порт для всех узлов (виртуальных машин) и любого трафика, который
отправляется на этот порт и пересылается на сервис.
Вернуться к вашей проблеме.
Попробуйте использовать эту конфигурацию. Это немного более понятно и содержит только необходимые параметры.
Имейте в виду, что ingress.global-static-ip-name
и targetPort
обоих Сервисов соответствуют вашим значениям портов Pod.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: $IP # Reserved IP address
labels:
app: myapp
part: ingress
spec:
rules:
- http:
paths:
- path: /*
backend:
serviceName: backapp
servicePort: 9000
- path: /front/*
backend:
serviceName: frontapp
servicePort: 3000`
Также необходимо определить отдельные сервисы для обработки входящего трафика:
apiVersion: v1
kind: Service
metadata:
labels:
app: myapp
part: back
name: backapp
namespace: default
spec:
ports:
- port: 9000
protocol: TCP
targetPort: 9000 # Port on the pod with 'back' application
selector:
app: myapp
part: back
type: NodePort
И вторая конфигурация для веб-служб:
apiVersion: v1
kind: Service
metadata:
labels:
app: myapp
part: front
name: frontapp
namespace: default
spec:
ports:
- port: 3000
protocol: TCP
targetPort: 3000 # Port on the pod with 'front' application
selector:
app: myapp
part: front
type: NodePort
Если с новой конфигурацией все будет не так, пожалуйста, напишите комментарий с подробной информацией.
(Я бы хотел сказать Спасибо Антону Костенко за помощь и за работу файлов конфигурации)