Cert-manager
Cert-manager is a tool to automatically provision and manage TLS certificates in Kubernetes.
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