使用Google Container Engine Intress确保SSL一直到POD



我有一个POD,它使用带有app CN的自签名证书在443上为HTTPS流量提供服务,该证书与服务名称 app匹配。它也可以在80上使用HTTP。

我也有一个入口对象,该对象在foo.com上外部暴露POD,并且我使用kube-lego用于动态获取和配置FOO.com的LetSencrypt证书:

spec:
  rules:
  - host: foo.com
    http:
      paths:
      - backend:
          serviceName: kube-lego-gce
          servicePort: 8080
        path: /.well-known/acme-challenge/*
      - backend:
          serviceName: app
          servicePort: 80
        path: /*
  tls:
  - hosts:
    - foo.com
    secretName: app-tls-staging

这意味着SSL有两个级别。如果将入口的servicePort设置为443,以确保Google的LB和我的POD之间的流量加密,则端点返回502 Server Error。这是因为它不知道相信我的自我签名证书吗?有没有办法指定CA?

一旦我将其设置回80,几分钟后,入口再次正常工作。

您要寻找的是负载平衡器< =>群集流量的"重新加热"。如果您在此处看到,则将重新吸收列为"未来工作"。

但我看到此功能已合并:https://github.com/kubernetes/ingress/pull/519/commits

看起来您可以在此处找到一个示例,并且在此文档中被描述为"后端https":https://github.com/kubernetes/ingress/tree/tree/master/master/master/controllers/gce#backend-backend-backend-https->

今天,此功能似乎在Alpha中,因此可能需要更改,您可能需要创建一个Alpha Gke群集(短暂的(才能使用它。

最新更新