Я запускаю приложение на K8s с сопоставлением портов 30060:30600
с типом LoadBalancer
Теперь я хочу добавить трафик в мой кластер в качестве обратного прокси с последующей настройкой Ingress
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: {{ template "myapp.fullname" . }}-ingress
labels:
# deployment labels
app: {{ template "myapp.name" . }} # app name
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
annotations:
kubernetes.io/ingress.class: traefik
spec:
rules:
- host: myapp.mybox.internal
http:
paths:
- path: /myapp
backend:
serviceName: {{ template "myapp.fullname" . }} # service name
servicePort: 30060
Моя проблема в том, что порт 30060 здесь игнорируется.
==> v1beta1/Ingress
NAME HOSTS ADDRESS PORTS AGE
myapp-ingress myapp.mybox.internal 80 0s
В результате все запросы не выполняются.
Если я изменю конфигурацию службы с
- targetPort: myapp-port
port: 30060
nodePort: 30060
до
- targetPort: myapp-port
port: 80
nodePort: 30060
услуга доступна, но:
- Приложение недоступно в разделе "/ myapp"
- но приложение доступно через "/" - и я понятия не имею, почему?!
Итак, мои вопросы:
- Почему невозможно поменять сервисный порт?
- Почему приложение отвечает не по сопоставленному пути, а по корневому пути?
Спасибо!