当前位置: 首页 > 知识库问答 >
问题:

使用AWS ELB为具有自定义ACM证书的HTTPS流量配置Istio Ingress

裴姚石
2023-03-14

我在EKS集群上部署了Kubeflow,但想使用html" target="_blank">自定义ACM证书配置HTTPS监听。Kubeflow利用Istio的入口网关接收外部流量,默认情况下仅配置为HTTP流量。

当我检查<代码>入口时。创建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流量的文章来自Istio documentation tutorial for the book service,但是它的配置似乎使用了一个直接安装到文件系统中的证书,该文件系统位于< code >/etc/Istio/Ingres gateway-book info-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

共有1个答案

彭正谊
2023-03-14

我认为你只需要添加注释。您可以指定哪个证书用于您的负载平衡器,如下所示

alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:eu-central-1:1231234564:证书/4564abc12-d3c2-4455-8c39-45354cdddaf03 (替换为您从 ACM 获得的 ARN)

我相信你可能需要监听443端口。

可从https://kubernetes-sigs . github . io/AWS-ALB-ingress-controller/guide/ingress/annotation/获得关于可用注释的文档

 类似资料:
  • 我的连接代码如下所示: 干杯,马尔辛

  • 我有一个域名注册在AWS Route53与ACM证书。我现在试图将域名和证书都转移到一个新的帐户,以及用Terraform管理资源。我使用AWS CLI将域名移动到新的帐户,它似乎工作得很好。然后,我尝试运行这个Terraform代码为域创建一个新的证书和宿主区域。 这有两件事很奇怪。首先,创建了证书,但验证从未完成。它仍处于待定验证状态。我在失败后的某个地方读到,您不能自动验证,您需要手动创建C

  • whistle会自动生成根证书,并根据根证书对每个请求动态生成https证书,如果需要用自定义的证书,甚至根证书,可以有两种方式(只支持 .crt 格式的证书): 把普通证书对 (如:test.crt 和 test.key、test2.crt 和 test2.key 等等) 或根证书 (名字必须为 root.crt 和 root.key),放在系统的某个目录,如 /data/ssl,并在启动时添加

  • 当从外部访问时,由于没有有效的CA,我得到了这个错误 验证深度为32 CONNECTED(00000003)不能使用SSL_get_servername深度=0 O=Acme Co,CN=库伯内特斯In的控制器伪造证书验证错误:编号=18:自签名证书验证返回:1深度=0 O=Acme Co,CN=伯库内特斯In的控制器伪造证书验证返回:1---证书链0 s: O=Acme Co,CN=库伯内特斯I

  • 我想知道当我在example.com中键入没有https时,我必须在AWS的证书管理器端做什么才能让https工作。 我已经为我的域配置了路由53别名,以便路由到我的弹性豆茎URL。我还有一个SSL证书,用于我的域名example.com和*.domain.com,这两个证书都已成功验证,是Amazon颁发的,也在使用中。

  • 是的,弹性豆茎应用程序是负载平衡的,并且确实有一个与之相关联的ELB。 我知道我可以直接应用于ELB我自己。但是我想通过弹性豆茎来应用它,这样env配置就保存到云形成模板上了。