По умолчанию Nginx Ingress Controller
обслуживает порты "HTTP/80"
и "HTTPS/443"
независимо от протокола и порта бэкэнда.
Так что в вашем случае вам не нужно ничего менять, чтобы использовать протокол HTTPS для вашего бэкэнда, если вы просто используете Nginx Ingress Controller из коробки
Например, у меня есть служба Ingress Controller, как показано ниже, которая работает на портах 80
и 443
, которые создаются при развертывании Nginx Controller
$ kubectl get svc nginx-ingress-controller
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx-ingress-controller LoadBalancer 10.15.254.182 <external-ip-addr> 80:32594/TCP,443:31949/TCP 2d
Также у меня есть служба для прослушивания развертывания my-nginx через порт 80
$ kubectl get svc my-nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-nginx ClusterIP 10.15.252.11 <none> 80/TCP 30m
И я развернул простой входной ресурс, похожий на ваш
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-nginx-ingress
spec:
backend:
serviceName: my-nginx
servicePort: 80
Теперь вы можете позвонить в службу через HTTP или HTTPS, запросив IP-адрес контроллера нагрузки Nginx за пределами кластера или DNS / ClusterIP внутри кластера.
HTTP-запрос в кластере из другого модуля:
# curl -I http://nginx-ingress-controller
HTTP/1.1 200 OK
Server: nginx/1.15.9
...
HTTPS-запрос:
# curl -Ik https://nginx-ingress-controller
HTTP/2 200
server: nginx/1.15.9
...
Надеюсь, это поможет вам