<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.williams-net.org/index.php?action=history&amp;feed=atom&amp;title=Renewing_Kubernetes_Cluster_Certificates</id>
	<title>Renewing Kubernetes Cluster Certificates - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.williams-net.org/index.php?action=history&amp;feed=atom&amp;title=Renewing_Kubernetes_Cluster_Certificates"/>
	<link rel="alternate" type="text/html" href="https://wiki.williams-net.org/index.php?title=Renewing_Kubernetes_Cluster_Certificates&amp;action=history"/>
	<updated>2026-06-01T02:38:10Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://wiki.williams-net.org/index.php?title=Renewing_Kubernetes_Cluster_Certificates&amp;diff=290&amp;oldid=prev</id>
		<title>DrEdWilliams: Created page with &quot;Kubernetes is supposed to renew its own certificates before there is a problem ... this was implemented in 1.15.x (??) ... but it is possible for there to be a problem if the...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.williams-net.org/index.php?title=Renewing_Kubernetes_Cluster_Certificates&amp;diff=290&amp;oldid=prev"/>
		<updated>2020-08-07T15:56:42Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Kubernetes is supposed to renew its own certificates before there is a problem ... this was implemented in 1.15.x (??) ... but it is possible for there to be a problem if the...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Kubernetes is supposed to renew its own certificates before there is a problem ... this was implemented in 1.15.x (??) ... but it is possible for there to be a problem if the master node is rebooted &amp;#039;&amp;#039;&amp;#039;on the exact one-year anniversary date&amp;#039;&amp;#039;&amp;#039; of the cluster:  after the certs have expired, but before the renewal process is triggered.  What you get is a message in the system logs:&lt;br /&gt;
&lt;br /&gt;
 Client rotation is on, will bootstrap in background&lt;br /&gt;
 failed to run Kubelet: unable to load bootstrap kubeconfig: stat /etc/kubernetes/bootstrap-kubelet.conf: no such file or directory&lt;br /&gt;
&lt;br /&gt;
Very informative (not).  After poking around, I found this post in [https://stackoverflow.com/questions/56320930/renew-kubernetes-pki-after-expired/56334732#56334732 Stack Overflow] that had the answer -- summarized here ... &lt;br /&gt;
&lt;br /&gt;
So the solution was to (first a backup) -- all commands as root:&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/k8s&lt;br /&gt;
 cd /etc/kubernetes/pki/&lt;br /&gt;
 mv {apiserver.crt,apiserver-etcd-client.key,apiserver-kubelet-client.crt,front-proxy-ca.crt,front-proxy-client.crt,front-proxy-client.key,front-proxy-ca.key,apiserver-kubelet-client.key,apiserver.key,apiserver-etcd-client.crt} ~/k8s/&lt;br /&gt;
 kubeadm init phase certs all --apiserver-advertise-address &amp;lt;IP&amp;gt;&lt;br /&gt;
 cd /etc/kubernetes/&lt;br /&gt;
 mv {admin.conf,controller-manager.conf,kubelet.conf,scheduler.conf} ~/k8s/&lt;br /&gt;
 kubeadm init phase kubeconfig all&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
Then copy the new certs to the default location so we can use kubectl:&lt;br /&gt;
&lt;br /&gt;
 cp -i /etc/kubernetes/admin.conf $HOME/.kube/config&lt;/div&gt;</summary>
		<author><name>DrEdWilliams</name></author>
	</entry>
</feed>