1、kubelet启动
2、kubelet查找kubelet-kubeconfig文件
3、如果没有kubeconfig文件,会去查找bootstrap-kubeconfig文件
4、kubelet会去检索bootstrap-kubeconfig文件中的apiserver的Url和token
5、kubelet连接检索到的apiserver的url,使用检索到的token进行验证
a)、apiserver会识别token,对应的bootstrap的secret进行验证
b)、找到secret中的一个auth-extra-groups字段通过base64解密的system:bootstrap:<token-id>,属于system:bootstrap组,这个组具有申请csr文件的权限,,,绑定在system:bootstrapper的clusterrole
c)、可以拿csr文件去申请我们的证书
6、kubelet拥有到啦创建和检索csr文件的权限
7、kubelet为自己创建一个csr文件,名为kubernetes.io/kube-apiserver-client-kubelet
8、kubelet有两种方法获取证书
a)、一个是使用Kubectl手动颁发证书
b)、如果配置啦相关权限,Kube-controller-manager会自动同意创建
1、controller-manager有一个CSRApprovingController,会校验kubelet发来的csr的username和group是否有创建csr文件的权限,而且还要验证签发人是否是kubernetes.io/kube-apiserver-client-kubelet
2、controller-manager同意创建csr文件请求
9、csr被同意后,controller-manager创建kubelet的证书文件
10、cntroller-manager将证书更新至csr的status字段
11、kubelet从apiserver获取证书
12、kubelet从获取到的key和证书文件,创建kubelet-kubeconfig文件
13、kubelet启动完成工作
bootstrap初始化过程
最新推荐文章于 2022-05-10 14:18:06 发布