如何使用Kubernetes SSL证书
问题描述:
我正尝试在Kubernetes中的另一个服务前面使用NginX代理LoadBalancer服务器或Ingress构建HTTPs代理服务器。无论哪种方式,我需要一个证书和密钥,以便我的外部请求得到验证。如何使用Kubernetes SSL证书
我正在查看how to manage tls in a cluster,我注意到用于连接到容器群集的证书与安装在运行窗格上的/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
上的证书相同。
所以我在想我的节点集群已经有一个注册证书,我需要的只是密钥,把它放到一个秘密中,并将其装入我的代理服务器。但我找不到如何。
这是简单的吗?我会怎么做?或者我需要创建一个新的证书,签名等等?那么我需要替换当前的证书吗?
答
如果你想要一个外部请求进入你的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.
希望这会有所帮助