Warning: Rotating Kubernetes certificates may result in your cluster being temporarily unavailable as components are restarted. For production environments, it’s recommended to perform this action during a maintenance window.
By default, Kubernetes clusters require certificates and Rancher launched Kubernetes clusters automatically generate certificates for the Kubernetes components. Rotating these certificates is important before the certificates expire as well as if a certificate is compromised. After the certificates are rotated, the Kubernetes components are automatically restarted.
Certificates can be rotated for the following services:
- etcd
- kubelet
- kube-apiserver
- kube-proxy
- kube-scheduler
- kube-controller-manager
Certificate Rotation in Rancher v2.2.x
Available as of v2.2.0
Rancher launched Kubernetes clusters have the ability to rotate the auto-generated certificates through the UI.
In the Global view, navigate to the cluster that you want to rotate certificates.
Select the ⋮ > Rotate Certificates.
Select which certificates that you want to rotate.
- Rotate all Service certificates (keep the same CA)
- Rotate an individual service and choose one of the services from the drop down menu
- Click Save.
Results: The selected certificates will be rotated and the related services will be restarted to start using the new certificate.
Note: Even though the RKE CLI can use custom certificates for the Kubernetes cluster components, Rancher currently doesn’t allow the ability to upload these in Rancher Launched Kubernetes clusters.
Certificate Rotation in Rancher v2.1.x and v2.0.x
Available as of v2.0.14 and v2.1.9
Rancher launched Kubernetes clusters have the ability to rotate the auto-generated certificates through the API.
In the Global view, navigate to the cluster that you want to rotate certificates.
Select the ⋮ > View in API.
Click on RotateCertificates.
Click on Show Request.
Click on Send Request.
Results: All Kubernetes certificates will be rotated.
Rotating Expired Certificates After Upgrading Older Rancher Versions
If you are upgrading from Rancher v2.0.13 or earlier, or v2.1.8 or earlier, and your clusters have expired certificates, some manual steps are required to complete the certificate rotation.
For the
controlplane
andetcd
nodes, log in to each corresponding host and check if the certificatekube-apiserver-requestheader-ca.pem
is in the following directory:cd /etc/kubernetes/.tmp
If the certificate is not in the directory, perform the following commands:
cp kube-ca.pem kube-apiserver-requestheader-ca.pem
cp kube-ca-key.pem kube-apiserver-requestheader-ca-key.pem
cp kube-apiserver.pem kube-apiserver-proxy-client.pem
cp kube-apiserver-key.pem kube-apiserver-proxy-client-key.pem
If the
.tmp
directory does not exist, you can copy the entire SSL certificate to.tmp
:cp -r /etc/kubernetes/ssl /etc/kubernetes/.tmp
Rotate the certificates. For Rancher v2.0.x and v2.1.x, use the Rancher API. For Rancher 2.2.x, use the UI.
After the command is finished, check if the
worker
nodes are Active. If not, log in to eachworker
node and restart the kubelet and proxy.