cert-manager #
Cert-Manager ist ein natives Kubernetes-Tool zur Automatisierung der Ausstellung und Verwaltung von TLS-Zertifikaten. Es kann Zertifikate von verschiedenen Ausstellern wie Let’s Encrypt beziehen und diese automatisch erneuern.
Deployment #
Quelle #
Das Projekt basiert auf dem Cert-Manager GitHub Repository. Das Helm-Chart stammt aus dem Jetstack Helm Charts Repository.
Dokumentation #
Funktion #
Dieser Dienst automatisiert den gesamten Lebenszyklus von TLS-Zertifikaten innerhalb des Kubernetes-Clusters. Er stellt sicher, dass Anwendungen immer über gültige und aktuelle Zertifikate verfügen, was die Sicherheit und Verfügbarkeit erhöht.
Lokale Anpassungen #
Die Konfiguration erfolgt über die values.yaml-Datei sowie zusätzliche Manifeste wie clusterissuer.yaml.
- Die
values.yaml-Datei konfiguriert globale Einstellungen für Cert-Manager, einschließlich der Leader-Election und der Standard-Issuer-Einstellungen fürletsencrypt-production. - Eine
ClusterIssuer-Ressource (clusterissuer.yaml) ist für Let’s Encrypt konfiguriert. - Zertifikate für spezifische Dienste werden über
certs.yamldefiniert. - Ein Secret wird aus
acmedns.jsongeneriert, das für DNS01-Challenges verwendet wird.
Wichtige Einstellungen #
- ClusterIssuer: Es ist ein
ClusterIssuernamensletsencrypt-productionkonfiguriert, der für die Ausstellung von Zertifikaten für den gesamten Cluster zuständig ist. - DNS01-Challenge: Zur Validierung der Domain-Inhaberschaft bei Let’s Encrypt wird die DNS01-Challenge-Methode verwendet. Dies geschieht über einen eigenen
acme-dns-Server, dessen Zugangsdaten in einem Secret gespeichert sind. Dies ermöglicht die Ausstellung von Wildcard-Zertifikaten und erfordert keine öffentlichen Ingress-Endpunkte während des Validierungsprozesses. - Ingress Shim: Das
ingress-shimist so konfiguriert, dass es automatisch Zertifikate für Ingress-Ressourcen anfordert, die entsprechend annotiert sind. - Prometheus: Metriken von cert-manager werden für das Monitoring via Prometheus exportiert.
Installation #
Die Anwendung wird mittels Kustomize und Helm durch ArgoCD im Kubernetes-Cluster bereitgestellt. Die Konfiguration befindet sich im apps/cert-manager-Verzeichnis. Eine manuelle Installation kann mit folgendem Befehl durchgeführt werden:
1kubectl kustomize --enable-helm apps/cert-manager | kubectl apply -n cert-manager -f -
Abhängigkeiten #
- Ein laufender Kubernetes-Cluster.
- Ein DNS-Anbieter, der für DNS01-Challenges konfiguriert ist (falls verwendet).