Zum Hauptinhalt springen
  1. Beiträge/
  2. Kleines Homelab/
  3. k3s-prod: Kubernetes Cluster Konfiguration und Anwendungsbereitstellung/

Cert-Manager

Inhaltsverzeichnis

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
#

Argo 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ür letsencrypt-production.
  • Eine ClusterIssuer-Ressource (clusterissuer.yaml) ist für Let’s Encrypt konfiguriert.
  • Zertifikate für spezifische Dienste werden über certs.yaml definiert.
  • Ein Secret wird aus acmedns.json generiert, das für DNS01-Challenges verwendet wird.

Wichtige Einstellungen
#

  • ClusterIssuer: Es ist ein ClusterIssuer namens letsencrypt-production konfiguriert, 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-shim ist 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).
Per E-Mail antworten
Fabrice Kirchner
Autor
Fabrice Kirchner
stolzer Vater, Nerd, Admin