如何在 AWS 和 SSL 终止中设置 kubernetes NGINX 入口

Lev*_*sov 5 ssl nginx amazon-web-services kubernetes elastic-load-balancer

我使用 KOPS 在 AWS 中设置了一个 kubernetes 集群;现在我想设置一个 NGINX 入口控制器并使用 AWS 托管证书终止 TLS。我理解的拓扑是 AWS ELB 面向互联网并终止 TLS,将未加密的转发到入口服务,然后进行调度。

我已经从https://github.com/kubernetes/ingress/tree/master/examples/aws/nginx部署了入口控制器

除了我使用https://github.com/kubernetes/ingress/issues/71上所述的注释来添加证书。

我将路由添加到 Route53 并打开我的浏览器到 https 地址并从 NGINX 获得 400 响应,并显示消息“纯 HTTP 请求已发送到 HTTPS 端口”

我究竟做错了什么?

这是我的入口资源:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
  name: dispatcher
  namespace: test
spec:
  rules:
  - host: REDACTED
    http:
      paths:
      - backend:
          serviceName: REDACTED
          servicePort: 80
        path: /api/v0
Run Code Online (Sandbox Code Playgroud)

Lev*_*sov 3

我设法主要使用此处的入口来完成此操作: https: //github.com/kubernetes/kops/tree/master/addons/ingress-nginx,除了入口服务之外,我添加了service.beta.kubernetes.io/aws-load-balancer-ssl-cert指向我的证书 ARN 的注释以及targetPort两者的集合端口改为80