Skip to content

Cert-manager

Cert-manager is a tool to automatically provision and manage TLS certificates in Kubernetes.

Github repository

Getting Started

  • install helm repository

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

  • create cert-manager namespace

    kubectl create namespace cert-manager
    

  • install cert-manager plugin for kubectl

    curl -L -o kubectl-cert-manager.tar.gz https://github.com/jetstack/cert-manager/releases/download/v1.2.0/kubectl-cert_manager-linux-amd64.tar.gz
    tar -zxvf kubectl-cert-manager.tar.gz
    sudo install -m 755 kubectl-cert_manager /usr/local/bin/kubectl-cert_manager
    

  • install helm Chart

    helm install cert-manager jetstack/cert-manager --namespace cert-manager --version v1.2.0 --create-namespace --set installCRDs=true
    

  • get all resources in cert-manager namespace

    kubectl get all -n cert-manager -o wide
    

Cert-manager Issuer

Self-signed

  • create cert-manager self-signed issuer
    kubectl apply -f self-signed-issuer.yaml
    

Securing NGINX Ingress Controller with Let's Encrypt

  • install NGINX Ingress Controller and assign a DNS name to the ingress-controller external IP

  • deploy a service

    kubectl apply -f deployment.yaml
    

  • deploy cert-manager

  • create cert-manager staging let's encrypt issuer

    kubectl apply -f staging-issuer.yaml
    

  • create cert-manager production let's encrypt issuer

    kubectl apply -f production-issuer.yaml
    

  • deploy a TLS ingress resource

    kubectl apply -f ingress-tls.yaml