2017-06-04 46 views
0

我正尝试在Kubernetes中的另一个服务前面使用NginX代理LoadBalancer服务器或Ingress构建HTTPs代理服务器。无论哪种方式,我需要一个证书和密钥,以便我的外部请求得到验证。如何使用Kubernetes SSL证书

我正在查看how to manage tls in a cluster,我注意到用于连接到容器群集的证书与安装在运行窗格上的/var/run/secrets/kubernetes.io/serviceaccount/ca.crt上的证书相同。

所以我在想我的节点集群已经有一个注册证书,我需要的只是密钥,把它放到一个秘密中,并将其装入我的代理服务器。但我找不到如何。

这是简单的吗?我会怎么做?或者我需要创建一个新的证书,签名等等?那么我需要替换当前的证书吗?

回答

3

如果你想要一个外部请求进入你的K8s集群,那么这是ingress controller的工作,或者如果你的云提供商支持它,用负载均衡器配置服务。

your reference讨论的证书的真正含义用于群集内通信,因为它说:

每个Kubernetes集群都有一个集群的根证书颁发机构(CA)。该CA是普遍使用的群集组件来验证API服务器的证书,由API服务器验证kubelet客户端证书等

如果你去入口的方法,然后here is the doc for tls。底部有一个alternatives的列表,如load balancer的方法。

我想你可以在外部使用内部证书,如果你能让所有的外部客户端信任它。我个人可能会使用kube-lego,它自动从Let's Encrypt获取证书,因为大多数浏览器现在都信任此CA.

希望这会有所帮助