在内部将域名解析为Kubernetes服务

时间:2016-06-15 11:31:44

标签: ssl dns kubernetes lets-encrypt

我们在Kubernetes中运行了很多应用程序,并使用HAProxy和使用LetsEncrypt生成的证书在Pod中处理TLS终止。

这适用于来自Kubernetes集群外部的流量,因为请求使用证书中指定的域名。

但是对于使用服务名称的内部通信 - 使用类似https:///的网址 - 网址的主机部分不再与证书中定义的内容相匹配,从而导致失败。

有没有办法让Kubernetes的DNS系统将完整域名解析为特定服务,因此它不会在集群外部路由?

1 个答案:

答案 0 :(得分:1)

我可以想到你可以追求的几个选择:

  1. 如果您信任群集网络的安全性,则可以通过http而不是https来传输仅运行群集的请求。

  2. 您可以让您的HAProxy实例使用SNI为内部请求提供不同的证书。您需要一种生成和分发内部证书的方法,但它允许您向客户端提供与Kubernetes服务名称匹配的证书。

  3. 继续解析FQDN,不用担心将请求路由出来然后再回到群集中。这实际上与即将建立的Kubernetes集群联合中的跨集群服务发现/联合功能没有什么不同。

  4. 实际上没有办法注入/覆盖外部FQDN解析以返回内部服务IP。