Порт обслуживания бэкэнда игнорируется в трафике на kubernetes - PullRequest
0 голосов
/ 10 января 2019

Я запускаю приложение на 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"
  • но приложение доступно через "/" - и я понятия не имею, почему?!

Итак, мои вопросы: - Почему невозможно поменять сервисный порт? - Почему приложение отвечает не по сопоставленному пути, а по корневому пути?

Спасибо!

...