5.4 Cert-Manager
Cert-Manager ist ein Kubernetes-Add-on, das Zertifikate automatisch verwaltet und bereitstellt. In dieser Anleitung wird die Konfiguration von Cert-Manager mit Let’s Encrypt und Cloudflare beschrieben.
Installation von Cert-Manager
- Erstelle das
cert-manager
Namespace:
kubectl create namespace cert-manager
- Erstellen eines Secrets mit dem Cloudflare API-Keys
apiVersion: v1
kind: Secret
metadata:
name: cloudflare-api-token-secret
type: Opaque
stringData:
api-token: <TOKEN>
- ArgoCD Applikation hinzufügen:
kubectl apply -f https://raw.githubusercontent.com/Cloud-native-engineering/sem04_k8s/refs/heads/main/cert-manager/cert-manager.yaml
- Sync ArgoCD Application
cert-manager
Ausstellen eines Zertifikats
Der Cert-Manager wird nacher selbständig bei der Ausstellung eines Let’s Encrypt Zertifikat die benötigten Überprüfungen vornehmen und die Domain Verifikation anhand DNS-TXT Records vornehmen. Folgendem Beispiel kann ein Ingress mit einem Zertifikat verseht werden:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
namespace: default
annotations:
cert-manager.io/cluster-issuer: "letsencrypt-staging"
spec:
ingressClassName: cilium
rules:
- host: git.k8s.wlankabel.ch
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: example-service
port:
number: 80
tls:
- secretName: git-tls
hosts:
- git.k8s.wlankabel.ch