Skip to content

Installing Cert-Manager with Helm

In my homelab, I'm eager to enhance the security and manage TLS certificates for my applications in Kubernetes. To achieve this, I'm installing Cert-Manager, a certificate management solution for Kubernetes. This allows me to easily create, manage, and renew SSL/TLS certificates for my services.

Prerequisites

Before I proceed with the installation, I need to ensure that the following prerequisites are in place:

  • A functional Kubernetes cluster with K3s, including at least one master node and one or more worker nodes.
  • Helm, the Kubernetes package manager, is installed on my master node.
  • SSH access to my master node.

Installation Steps

Add Cert-Manager Helm Repository

To install Cert-Manager, I'll start by adding the Cert-Manager Helm chart repository to Helm:

helm repo add jetstack https://charts.jetstack.io
helm repo update

Now, Helm is aware of the Cert-Manager Helm chart.

Install Cert-Manager

I'll use Helm to install Cert-Manager with the following command:

helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --set installCRDs=true

This command deploys Cert-Manager into the cert-manager namespace. It also instructs Helm to install Custom Resource Definitions (CRDs) as required by Cert-Manager.

Verify Cert-Manager Installation

To ensure that Cert-Manager is correctly installed and running, I'll run the following command:

kubectl get pods -n cert-manager

This command should display the Cert-Manager pods within the cert-manager namespace, indicating that Cert-Manager is active and ready to manage TLS certificates for my applications.

Step 4: Deploy Certificate Issuers

Cert-Manager uses "issuers" to determine how to issue certificates. I'll create and configure an issuer to start using Cert-Manager effectively. There are various types of issuers, including Let's Encrypt, which provides free TLS certificates.

Now that Cert-Manager is up and running in my homelab, I'm all set to start managing TLS certificates for my Kubernetes services and enhance the security of my applications.