我有一个位于负载均衡器后面的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版。
谢谢,如果这是一个愚蠢的问题,请先抱歉。
答案 0 :(得分:1)
如果您的应用程序可以同时侦听HTTP和HTTPS,则可以同时进行配置。意味着您可以根据自己的喜好通过HTTP和HTTPS进行访问。现在,如何创建和分发证书是另外一回事了,但是您必须自己解决(可能通过使用自己的CA并秘密存储证书/密钥)。除非您想使用Istio及其相互tls支持之类的东西来保护服务之间的流量。
尽管您写了您想要实现的目标,但我们真的不知道为什么。产生这种需求的原因实际上可能有助于提出最佳解决方案