cert-manager CSI Driver
cert-manager CSI Driver is a Kubernetes add-on that mounts TLS certificates directly into pods. It works alongside cert-manager: you define certificate parameters in the pod manifest, and the driver requests a certificate and mounts it—along with its private key—into the specified directory. There's no need to create a separate Certificate resource or secret for the pod's certificate.
How It Works Copy link
This approach works well for applications that handle TLS connections themselves and read certificates from files. For example, the driver can issue and mount a certificate for an Nginx pod, or give each pod its own certificate for mutual authentication between services. Certificates are issued through a configured Issuer or ClusterIssuer, including Let's Encrypt.
Each application replica gets its own certificate and key. The private key is generated on the node running the pod, stays in memory, and is never transmitted over the network by the driver. When a pod is deleted, its certificate files are removed; when the pod is recreated, a new certificate is issued.
If you need a certificate to persist across pod recreations, or to use for HTTPS on an Ingress controller, configure it through cert-manager with a Certificate resource and a secret instead.
Install cert-manager CSI Driver Copy link
cert-manager must already be installed in the cluster before you install this add-on.
- Go to the Kubernetes section and select your cluster.
- Open the Addons tab and click cert-manager CSI Driver.
- In the setup wizard, click Install and wait for the installation to complete.
Verify the Installation Copy link
Connect to the cluster with kubectl and check that the driver is registered:
kubectl get csidriver csi.cert-manager.ioThe output should list the csi.cert-manager.io driver with Ephemeral mode. This mode is used for temporary volumes tied to a pod's lifecycle, so you don't need to create a StorageClass, PersistentVolume, or PersistentVolumeClaim for them.
The driver runs on worker nodes as a DaemonSet. Check its status with:
kubectl get daemonsets -AFind the cert-manager CSI Driver DaemonSet in the list. The values in the DESIRED and READY columns should match and be greater than zero.