代码之家  ›  专栏  ›  技术社区  ›  user1578872

Kubernetes服务-带https的负载平衡器

  •  2
  • user1578872  · 技术社区  · 6 年前

    我使用服务作为集群的kubernetes,并将entress放在服务前面,将其暴露在kubernetes集群之外。

    运行带https的Ingress并使其成为https,我创建了这个秘密并在Ingress中使用它。

    kubectl create secret tls test secret--密钥--证书证书

    在我们的kubernetes集群中使用netscalar,因此,我可以使用x-forward-for、会话关联、负载平衡算法以及入口。

    现在,尝试将服务类型设置为负载均衡器,这样我就不必有入口。我知道,服务类型的负载均衡器提供L4负载均衡器,因此在负载均衡器中不会有会话关联功能。因为,很少有服务可以,所以我尝试使用这个。

    我试着把服务变成https

    https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/#securing-the-service

    在这里,我们创建tls secret并使用部署部分而不是服务部分中的引用。不确定它是如何工作的。另外,当我使用 https://servicename.namespace.svc.XXXXX.com 在浏览器中获取证书错误。

    我的应用程序以https的形式运行,它需要密钥库和信任库在一个属性文件中,比如,

    ssl.trustore=文件路径 ssl.keystore=文件路径

    我很困惑,我如何才能使服务类型的负载均衡器https?

    2 回复  |  直到 5 年前
        1
  •  2
  •   suren    6 年前

    目标IP:端口

    HTTP/HTTPS负载平衡器位于L7上,因此它们具有应用程序意识。

        2
  •  0
  •   dbustamante    5 年前

    如果您使用的是云提供程序(例如AWS),则可以在这样的负载均衡器服务中启用TLS终止:

    apiVersion: v1
    kind: Service
    metadata:
      name: api
      annotations:
        service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:...
        service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
    spec:
      type: LoadBalancer
      selector:
        app: myApp
      ports:
        -  protocol: TCP
           port: 443
           targetPort: 8080