您现在的位置是:首页 >技术教程 >《Kubernetes证书篇:二进制手动生成kubernetes集群相关证书》网站首页技术教程

《Kubernetes证书篇:二进制手动生成kubernetes集群相关证书》

东城绝神 2023-06-09 12:00:03
简介《Kubernetes证书篇:二进制手动生成kubernetes集群相关证书》

一、背景

K8S二进制部署,有两大难点,第一个就是证书的生成,第二个就是需要部署哪些组件。这里就首先介绍一下,K8S需要生成哪些证书文件?

1.1、ca证书

我们先简单说一下证书签发,首先需要签发一个根CA(证书签发机构),然后使用CA来签发服务端证书(server)、客户端证书(client)、对等证书(peer),其中对等证书就是既可以做服务端证书,也可以做客户端证书。

我们需要三个CA(当然你懒一些用同一个CA也是可以的),这里就介绍三个CA,如下所示:

证书及密钥路径证书文件密钥文件默认CN说明
/etc/kubernetes/pkica.pemca-key.pemkubernetes-caKubernetes 通用 CA
/etc/kubernetes/pki/etcdca.pemca-key.pemetcd-ca与 etcd 相关的所有功能
/etc/kubernetes/pkifront-proxy-ca.pemfront-proxy-ca-key.pemkubernetes-front-proxy-ca用于前端代理

1.2、etcd应用需要的证书

证书及密钥路径证书文件密钥文件父级CA默认CN说明
/etc/kubernetes/pki/etcdserver.pemserver-key.pemetcd-cakube-etcdetcd对外提供服务,要有一套etcd server证书
/etc/kubernetes/pki/etcdhealthcheck-client.pemhealthcheck-client-key.pemetcd-cakube-etcd-healthcheck-client客户端证书
/etc/kubernetes/pki/etcdpeer.pempeer-key.pemetcd-cakube-etcd-peeretcd各节点之间进行通信,要有一套etcd peer证书

1.3、kube-apiserver应用需要的证书

证书及密钥路径证书文件密钥文件父级CA默认CN证书类型说明
/etc/kubernetes/pkiapiserver-etcd-client.pemapiserver-etcd-client-key.pemetcd-cakube-apiserver-etcd-clientclientkube-apiIserver访问etcd,要有一套etcd客户端证书
/etc/kubernetes/pkiapiserver.pemapiserver-key.pemkubernetes-cakube-apiserverserverkube-apiserver对外提供服务,要有一套kube-apiserver服务端证书
/etc/kubernetes/pkiapiserver-kubelet-client.pemapiserver-kubelet-client-key.pemkubernetes-cakube-apiserver-kubelet-clientclient用于API服务器安全地连接到kubelet的客户端证书
/etc/kubernetes/pkifront-proxy-ca.pemfront-proxy-ca-key.pemkubernetes-front-proxy-caca用于前端代理证书颁发机构
/etc/kubernetes/pkifront-proxy-client.pemfront-proxy-client-key.pemkubernetes-front-proxy-cafront-proxy-clientclient用于前端代理客户端
/etc/kubernetes/pkisa.pubsa.key密钥对用于控制器管理器签署ServiceAccount时使用的密钥

1.4、kube-controller-manager应用需要的证书


1.5、kube-scheduler应用需要的证书


1.6、kube-proxy应用需要的证书


1.7、kubelet应用需要的证书

kubelet证书推荐使用TLS bootstrap方式自动签发,手动签发的话需要给每一个node节点的kubelet签发证书,因为kubelet证书CN要为system:node:,O要为system:nodes。


总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:企业级K8s集群运维实战

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。