我正在尝试使用NginX代理LoadBalancer服务器或Ingress在Kubernetes中的另一个服务之前构建HTTPs代理服务器。无论哪种方式,我都需要证书和密钥,以便我的外部请求得到身份验证。
我正在查看how to manage tls in a cluster,并且我注意到用于连接到容器群集的证书与在/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
上安装在正在运行的容器上的证书相同
所以我认为我的节点集群已经有了注册证书,我需要的只是密钥,把它扔进一个秘密并将其挂载到我的代理服务器中。但我无法找到。
这么简单吗?我该怎么办?或者我是否需要创建新证书,签名等等?那么我是否需要更换当前的证书?
答案 0 :(得分:5)
如果您希望外部请求进入您的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.
希望这有帮助