yuyicai / update-kube-cert

K8s 集群证书过期处理,更新 kubeadm 生成的证书有效期为 10 年。支持全部版本。
MIT License
517 stars 281 forks source link

关于kubelet证书更新的问题 #1

Closed NewSmallWorld closed 4 years ago

NewSmallWorld commented 4 years ago

您好,我的kubeadm版本为v1.15.7,想请问一下,这个版本的kubelet证书是默认自动轮换更新的吗?可以主动手动更新吗?

yuyicai commented 4 years ago

1.15.x 执行kubeadm init那台master的kubelet不能自动更新证书(如果是高可用,其它master的kubelet证书是默认自动更新的),因为写死了,可以手动更改为证书软连接。如果用这个脚本改的话无需再手动处理master kubelet证书

NewSmallWorld commented 4 years ago

1.15.x 执行kubeadm init那台master的kubelet不能自动更新证书(如果是高可用,其它master的kubelet证书是默认自动更新的),因为写死了,可以手动更改为证书软连接。如果用这个脚本改的话无需再手动处理master kubelet证书

感谢回复!我的集群是高可用的, 执行kubeadm init那台master的/etc/kubernetes/kubelet.conf文件我已经做了如下设置: cat /etc/kubernetes/kubelet.conf ...... users:

是否这样设置后执行kubeadm init的这台master的kubelet也会默认自动更新证书? 如果kubelet是默认自动更新证书,那kubelet的证书大概会在到期前多久进行自动更新?

yuyicai commented 4 years ago

是的/var/lib/kubelet/pki/kubelet-client-current.pem软连接会一直指向kubelet申请的新证书,这样就能自动更新了,具体剩余多少天会更新证书还得翻翻源码才知道😂😂😂

NewSmallWorld commented 4 years ago

感谢,我再研究一下😄

yuyicai commented 4 years ago

1.15.x 执行kubeadm init那台master的kubelet不能自动更新证书(如果是高可用,其它master的kubelet证书是默认自动更新的),因为写死了,可以手动更改为证书软连接。如果用这个脚本改的话无需再手动处理master kubelet证书

感谢回复!我的集群是高可用的, 执行kubeadm init那台master的/etc/kubernetes/kubelet.conf文件我已经做了如下设置: cat /etc/kubernetes/kubelet.conf ...... users:

  • name: default-auth user: client-certificate: /var/lib/kubelet/pki/kubelet-client-current.pem client-key: /var/lib/kubelet/pki/kubelet-client-current.pem

是否这样设置后执行kubeadm init的这台master的kubelet也会默认自动更新证书? 如果kubelet是默认自动更新证书,那kubelet的证书大概会在到期前多久进行自动更新?

关于kubelet的证书到期前多久进行自动更新?问题:
最近读源码看到了

https://github.com/kubernetes/kubernetes/blob/v1.18.0/staging/src/k8s.io/client-go/util/certificate/certificate_manager.go#L557

jitteryDuration uses some jitter to set the rotation threshold so each node will rotate at approximately 70-90% of the total lifetime of the certificate. With jitter, if a number of nodes are added to a cluster at approximately the same time (such as cluster creation time), they won't all try to rotate certificates at the same time for the rest of the life of the cluster.

kubelet证书会在过期时间的70-90%内 进行换,并不会在同一过期时间进行轮换。

zm3308 commented 4 years ago

1.15.x 执行kubeadm init那台master的kubelet不能自动更新证书(如果是高可用,其它master的kubelet证书是默认自动更新的),因为写死了,可以手动更改为证书软连接。如果用这个脚本改的话无需再手动处理master kubelet证书

感谢回复!我的集群是高可用的, 执行kubeadm init那台master的/etc/kubernetes/kubelet.conf文件我已经做了如下设置: cat /etc/kubernetes/kubelet.conf ...... users:

  • name: default-auth user: client-certificate: /var/lib/kubelet/pki/kubelet-client-current.pem client-key: /var/lib/kubelet/pki/kubelet-client-current.pem

是否这样设置后执行kubeadm init的这台master的kubelet也会默认自动更新证书? 如果kubelet是默认自动更新证书,那kubelet的证书大概会在到期前多久进行自动更新?

关于kubelet的证书到期前多久进行自动更新?问题: 最近读源码看到了

https://github.com/kubernetes/kubernetes/blob/v1.18.0/staging/src/k8s.io/client-go/util/certificate/certificate_manager.go#L557

jitteryDuration uses some jitter to set the rotation threshold so each node will rotate at approximately 70-90% of the total lifetime of the certificate. With jitter, if a number of nodes are added to a cluster at approximately the same time (such as cluster creation time), they won't all try to rotate certificates at the same time for the rest of the life of the cluster.

kubelet证书会在过期时间的70-90%内 进行换,并不会在同一过期时间进行轮换。

是的,我的集群在运行快到一年的时候,kubelet证书都自动更新了