[英]Configure Istio Ingress using AWS ELB for HTTPS traffic with a custom ACM certificate
我在 EKS 集群上部署了Kubeflow ,但想配置 HTTPS 使用自定義 ACM 證書進行監聽。 Kubeflow 使用 Istio 的入口網關來接收外部流量,默認情況下只為 HTTP 流量配置。
當我檢查創建 Ingress object 的ingress.yaml
文件時,我看到它僅配置為 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 流量的唯一文章來自其 book service 的 Istio 文檔教程,但它的配置似乎使用了一個證書,該證書直接安裝在/etc/istio/ingressgateway-bookinfo-certs/tls.crt
的文件系統中/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 流量時,我通常必須從 ACM(Amazon Certificate Manager)指定 SSL 證書。 例如,這是我手動配置 Istio 創建的負載均衡器以監聽 HTTPS 流量的屏幕截圖: 這是我為從 Route 53 購買的托管區域獲得的證書。但是,老實說,我不知道應該如何在 Istio YAML 配置中指定此證書,甚至不知道如何安裝它。 我知道這是一個有點基本的問題,但是有人可以為我指明如何使用 HTTPS 偵聽器和 ACM 進行 Istio 入口的教程或演練的方向嗎?
我認為您只需要添加注釋即可。 您可以像這樣指定要用於負載均衡器的證書
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:eu-central-1:1231234564:certificate/4564abc12-d3c2-4455-8c39-45354cddaf03(替換為您從 ACM 獲得的 ARN)
而且我相信你可能需要監聽 443 端口。
https://kubernetes-sigs.github.io/aws-alb-ingress-controller/guide/ingress/annotation/上提供的可用注釋文檔
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.