Я развернул Kubeflow в кластере EKS, но хочу настроить прослушивание HTTPS с помощью специального сертификата ACM.Kubeflow использует входной шлюз Istio для получения внешнего трафика и по умолчанию настроен только для HTTP-трафика.
Когда я проверяю файл ingress.yaml
, который создает объект Ingress, я вижу, что он настроен только для HTTP:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}]'
name: istio-ingress
spec:
rules:
- http:
paths:
- backend:
serviceName: istio-ingressgateway
servicePort: 80
path: /*
То же самое существует для шлюза Istio:
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: kubeflow-gateway
namespace: kubeflow
spec:
selector:
istio: ingressgateway
servers:
- hosts:
- '*'
port:
name: http
number: 80
protocol: HTTP
Единственная статья, которую я могу найти по приему трафика TLS, взята из учебника по документации Istio для службы книг , но в его конфигурации используется сертификат, смонтированный непосредственно в файловой системе.в /etc/istio/ingressgateway-bookinfo-certs/tls.crt
:
$ kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: bookinfo-gateway
spec:
selector:
istio: ingressgateway # use istio default ingress gateway
servers:
- port:
number: 443
name: https-bookinfo
protocol: HTTPS
tls:
mode: SIMPLE
serverCertificate: /etc/istio/ingressgateway-bookinfo-certs/tls.crt
privateKey: /etc/istio/ingressgateway-bookinfo-certs/tls.key
hosts:
- "bookinfo.com"
EOF
Проблема в том, что, когда я обычно настраиваю AWS ELB для прослушивания трафика HTTPS, мне обычно приходится указывать сертификат SSL от ACM (Amazon Certificate Manager).Например, это снимок экрана, на котором я вручную настраиваю балансировщик нагрузки, созданный Istio для прослушивания трафика HTTPS: Это сертификат, который я приобрел для своих зон размещения, приобретенных у Route 53. Однако ячестно говоря, не имею ни малейшего представления, как я должен указывать этот сертификат в своих конфигурациях YAML Istio или даже как его монтировать.Я знаю, что это довольно простой вопрос, но может ли кто-нибудь указать мне направление обучения или пошаговое руководство по использованию слушателей HTTPS с ACM для входа в Istio?