如何在Kubernetes集群中使用现有证书

时间:2017-09-21 07:23:01

标签: ssl kubernetes

我对导入现有证书有一些疑问。

  1. 如何在Kubernetes内部使用证书(例如在api服务器和工作人员,主控制器等之间)? Kubernetes有CA吗? (如何)生成内部使用的证书?

  2. 每一层都需要哪些证书?

1 个答案:

答案 0 :(得分:1)

Kubernetes中的证书主要用于保护与API服务器之间的通信。取自official Kubernetes documentation

  

每个Kubernetes群集都有一个群集根证书颁发机构   (CA)。 CA通常由群集组件用于验证   API服务器的证书,由API服务器验证kubelet客户端   证书等。为了支持这一点,CA证书包是   分布到集群中的每个节点并作为分发   附加到默认服务帐户的机密。或者,你的   工作负载可以使用此CA来建立信任。你的申请可以   使用certificates.k8s.io API请求证书签名   一个类似于ACME草案的协议。

使用kubeadm创建群集时,该工具首先在/etc/kubernetes/pki中创建一个CA,并使用其私钥对所有后续证书进行签名。 ca稍后在所有节点上分发以进行验证,并且还在/etc/kubernetes/admin.conf中找到base64编码,以通过kubectl验证api服务器。

在调用ca.crt或之后的任何文件夹之前,可以将自己的CA和ca.key中的私钥放在/etc/kubernetes/pki中,然后将其设置为kubeadm init。使用--cert-dir指定。

还有许多其他方法可以安装Kubernetes,但它们基本上都是在任何实际的Kubernetes代码运行之前创建一个CA,或者事先要求它存在。