In this tutorial, you’ll learn how to install Cert-Manager on Kubernetes and obtain an SSL certificate from Let’s Encrypt to secure a Traefik Ingress. We’ll walk through:Documentation Index
Fetch the complete documentation index at: https://notes.kodekloud.com/llms.txt
Use this file to discover all available pages before exploring further.
- Installing Cert-Manager with Helm
- Reviewing the sample “whoami” app and existing Ingress
- Creating a Let’s Encrypt staging Issuer
- Applying the Issuer and validating resources
- Updating the Ingress to request TLS
- Verifying the ACME challenge and certificate issuance
- Creating a Let’s Encrypt production Issuer and switching over
1. Install Cert-Manager
First, ensure you have Helm installed and a Kubernetes context pointing at your control plane.cert-manager namespace are in the Running state:
Make sure your cluster meets the Cert-Manager prerequisites.
2. Review the Test App and Ingress
We have a simple “whoami” deployment in thedefault namespace, fronted by Traefik:
3. Create a Let’s Encrypt Staging Issuer
To prevent hitting rate limits, start with the staging environment. Save this asstaging-issuer.yaml:
letsencrypt-staging in the secret list.
4. Update the Ingress for TLS
Modifywhoami-ingress.yaml to include the Cert-Manager annotation and a TLS block:
Ensure DNS for
test-example.com points to your Traefik load balancer before requesting a certificate.5. Verify the ACME Challenge and Certificate Issuance
Describe the Ingress again to confirm ACME resources:- A
cm-acme-http-solver-…backend under the ACME challenge path - An event
CreateCertificateindicatingweb-sslwas requested
6. Create a Let’s Encrypt Production Issuer
Once staging is validated, switch to the production environment. Createprod-issuer.yaml:
7. Switch Ingress to Production Issuer
Update the Ingress annotation to use the production Issuer:Issuer Configuration Summary
| Issuer Name | Environment | ACME Server URL | Secret Name |
|---|---|---|---|
| letsencrypt-staging | Staging | https://acme-staging-v02.api.letsencrypt.org/directory | letsencrypt-staging |
| letsencrypt-production | Production | https://acme-v02.api.letsencrypt.org/directory | letsencrypt-production |
References
- Cert-Manager Documentation
- Let’s Encrypt ACME v2 API
- Traefik Ingress Controller
- Kubernetes Ingress Basics