簡體   English   中英

使用 AWS ELB 為具有自定義 ACM 證書的 HTTPS 流量配置 Istio Ingress

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM