SSL终止后,本地kubernetes后端服务地址的HTTPS端点

时间:2018-10-02 13:56:14

标签: ssl kubernetes coredns

我有一个位于负载均衡器后面的k8s集群。对myapisite.com的请求通过LB传递,并由k8s路由到正确的部署,从k8s负载均衡器入口获取SSL证书,然后将其路由到服务入口,例如:

spec:
  rules:
  - host: myapisite.com
    http:
      paths:
      - backend:
          serviceName: ingress-605582265bdcdcee247c11ee5801957d
          servicePort: 80
        path: /
  tls:
  - hosts:
    - myapisite.com
    secretName: myapisitecert
status:
  loadBalancer: {}

因此,我的myapisite.com可以在HTTPS上正确解析。

我的问题是,在维持上述设置(如果可能)的同时,我需要能够转到HTTPS上相同名称空间内的本地服务端点,即从另一个Pod中,我应该能够卷曲或获取以下没有证书错误:

https:\\ myapisite.namespace.svc.cluster.local

即使我有兴趣在Pod级之前不终止SSL,也不选择在证书上为.local地址创建SAN条目,因此该解决方案不可行。

是否有一些简单的方法让我无法在k8s中信任所有本地DNS?还是这里的其他解决方案希望不会彻底改变方向盘?我正在使用带有CoreDNS的kubernetes 1.11版。

谢谢,如果这是一个愚蠢的问题,请先抱歉。

1 个答案:

答案 0 :(得分:1)

如果您的应用程序可以同时侦听HTTP和HTTPS,则可以同时进行配置。意味着您可以根据自己的喜好通过HTTP和HTTPS进行访问。现在,如何创建和分发证书是另外一回事了,但是您必须自己解决(可能通过使用自己的CA并秘密存储证书/密钥)。除非您想使用Istio及其相互tls支持之类的东西来保护服务之间的流量。

尽管您写了您想要实现的目标,但我们真的不知道为什么。产生这种需求的原因实际上可能有助于提出最佳解决方案