【问题标题】:Kubernetes Load Balancer Terminating SSL to Reverse Proxy Ingress DigitalOceanKubernetes 负载均衡器终止 SSL 以反向代理入口 DigitalOcean
【发布时间】:2020-05-07 18:16:52
【问题描述】:

我的原始基础架构是围绕本教程构建的。 https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nginx-ingress-with-cert-manager-on-digitalocean-kubernetes.

现在我正在尝试迁移到管理我自己的证书并在负载平衡器处终止 SSL。

随着我的 YAML 更新,DigitalOcean 中的负载均衡器显示所有节点都不健康,我的 URL 响应显示“503 服务不可用 没有可用的服务器来处理这个请求。”但是,端点显示了一个安全的 HTTPS 连接。我做错了什么?

下面是我的新的非功能性 YAML 定义。

负载平衡器

apiVersion: v1
kind: Service
metadata:
  name: ingress-nginx
  namespace: ingress-nginx
  annotations:
    service.beta.kubernetes.io/do-loadbalancer-redirect-http-to-https: "true"
    service.beta.kubernetes.io/do-loadbalancer-enable-proxy-protocol: "true"
    service.beta.kubernetes.io/do-loadbalancer-certificate-id: "**************"
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
spec:
  type: LoadBalancer
  selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
  ports:
    - name: http
      port: 80
      targetPort: http
    - name: https
      port: 443
      targetPort: http

入口

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/proxy-body-size: "50m"
spec:
  tls:
    - hosts:
        - ******.com
        - api.*******.com
  rules:
    - host: **********.com
      http:
        paths:
          - backend:
              serviceName: frontend-angular
              servicePort: 80
    - host: api.********.com
      http:
        paths:
          - backend:
              serviceName: backend-server
              servicePort: 80

【问题讨论】:

    标签: ssl kubernetes load-balancing digital-ocean nginx-ingress


    【解决方案1】:

    我联系了 DigitalOcean 支持(这太不可思议了)。我的问题是我没有创建 ingress-nginx pod。这是我错过的教程中列出的两个步骤。

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.26.1/deploy/static/mandatory.yaml

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.26.1/deploy/static/provider/cloud-generic.yaml

    我的实际 YAML 定义是正确的。

    【讨论】:

      【解决方案2】:

      最好的方法就是使用 Digital Ocean Marketplace (https://marketplace.digitalocean.com/apps/nginx-ingress-controller)。

      由于 yml 文件过时,手动安装会导致很多问题。

      【讨论】:

        猜你喜欢
        • 2019-05-27
        • 2020-06-28
        • 2020-10-06
        • 2013-05-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-04
        • 2019-08-15
        相关资源
        最近更新 更多