Представим, что у меня есть простой веб-сайт, и я хочу запустить его на Kubernetes. Веб-сайт должен прослушивать протоколы HTTP и HTTPS.
В Kubernetes я настроил его развертывание, обслуживание и вход. Если я попробую только порт 80, все будет работать хорошо, но если я захочу расширить его с помощью HTTPS, все не удастся, и я получаю ошибку 404 от контроллера входящего трафика. Трафик HTTPS должен перенаправляться непосредственно на серверную часть. Как я могу это сделать?
Я попытался расширить набор демонов контроллера входящего трафика с помощью параметра --enable-ssl-passthrough = true (непосредственно в конфигурации набора демонов), но тогда модуль контроллера входящего трафика не смог Начните. Я нашел в Интернете статью о том, что для включения --enable-ssl-passthrough необходимо установить контроллер входящего трафика с этим флагом: см. эту страницу. Кстати, как я могу «установить» контроллер входящего трафика с этим флагом?
Я попытался добавить порты 80 и 443 в правила входа, но тоже безуспешно.
Kubernetes: Ingress-контроллер v1.14.3: документация
Пожалуйста, посмотрите мой сервис и вход:
apiVersion: v1
kind: Service
metadata:
name: {{ container_service_ingress }}-service
labels:
cms: "{{ cms }}"
namespace: "default"
spec:
selector:
website: "{{ domain }}"
cms: "{{ cms }}"
ports:
- name: http
port: 80
- name: https
port: 443
type: NodePort
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: {{ container_service_ingress }}-ingress
# I tried this annotation, but it didn't help:
annotations:
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
labels:
website: "{{ domain }}"
spec:
rules:
- host: {{ domain }}
http:
paths:
- backend:
serviceName: {{ container_service_ingress }}-service
servicePort: 80
- backend:
serviceName: {{ container_service_ingress }}-service
servicePort: 443
И в этом случае входной контроллер не может запуститься, поскольку он говорит о дублировании местоположения "/" в файле конфигурации.
Кто-нибудь может мне с этим помочь?