Настройка Ingress для дополнительного порта и конечной точки

Я настроил тестовую службу в Kubernetes в своем пространстве имен по умолчанию. Следуя этому Руководству по Kubernetes

NAMESPACE     NAME                            TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
default       example-service                 NodePort       10.102.218.101   <none>        8080:30242/TCP               3h38m

Curl to curl http://my.server.com:30242 возвращает правильный вывод ==> Hello Kubernetes! Теперь я хочу настроить вход, который делает приложение доступным на другой конечной точке и без использования порта 30242. Итак, я настроил вход

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: 5ingress
  annotations:
    ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: my.server.com
    http:
      paths:
        - path: /testing
          backend:
            serviceName: example-service
            servicePort: 80

Ingress развернут, но новый путь не работает. kubectl get ingress --all-namespaces

kube-system   5ingress            my.server.com             80, 443   16m

Curl для завивки curl http://my.server.com/testing возвращает

<html>
<head><title>308 Permanent Redirect</title></head>
<body>
<center><h1>308 Permanent Redirect</h1></center>
<hr><center>nginx/1.15.10</center>
</body>
</html

>

Я ожидал, что curl http://my.server.com/testing вернет Hello Kubernetes! Что я упускаю и как это решить?


person Mchoeti    schedule 13.05.2019    source источник


Ответы (2)


Первым шагом будет исправление servicePort в вашей входной спецификации.

Ваш example-service открыт для порта 8080, в то время как servicePort в определении входящего трафика имеет значение 80.

Было бы также неплохо увидеть описание вашего контроллера входящего трафика, если оно есть.

person A_Suh    schedule 14.05.2019

Если вы используете Nginx Ingress, вы должны добавить следующие аннотации:

nginx.ingress.kubernetes.io/ssl-redirect: "false"
person Vasili Angapov    schedule 13.05.2019