如何将 aws nlb 与 nginx 入口控制器结合使用以实现 ssl

Aks*_*ani 3 kubernetes amazon-eks nginx-ingress aws-nlb

我已将 AWS ACM 提供的 SSL 证书附加到 NLB。NLB 会将请求转发到 nginx 入口。Nginx 给我以下错误。The plain HTTP request was sent to HTTPS port。我在 nginx ingress 中设置了以下注释。

  • nginx.ingress.kubernetes.io/force-ssl-redirect: false
  • nginx.ingress.kubernetes.io/ssl-redirect: false

我在 NLB 后面运行的 nginx 入口服务中设置了以下注释。

  • service.beta.kubernetes.io/aws-load-balancer-backend-protocol:http
  • service.beta.kubernetes.io/aws-load-balancer-ssl-cert:“证书 arn”
  • service.beta.kubernetes.io/aws-load-balancer-ssl-ports:https
  • service.beta.kubernetes.io/aws-load-balancer-type:nlb

Har*_*var 5

对于这个错误:

纯 HTTP 请求已发送到 HTTPS 端口

更改Nginx服务中的端口配置,例如HTTPS部分中的目标端口应该是http而不是https

ports:
  - name: https
    **targetPort: http**
Run Code Online (Sandbox Code Playgroud)

这里注释供参考

service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "60"
service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true"
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:ap-southeast-1:xxxxxxx:certificate/8991ftt8-69e0-4e7d-1164-yy0aae19da90v
service.beta.kubernetes.io/aws-load-balancer-type: nlb
Run Code Online (Sandbox Code Playgroud)