0Pricing
DevOps Bootcamp · Lektion

Kubernetes-Secret-Ressourcen templatisieren

Secret-Objekte rendern, ohne Werte offenzulegen

Kubernetes-Secret-Ressourcen templatisieren ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.

Charts können Secrets rendern

Manchmal muss Ihr Chart selbst ein Kubernetes-Secret-Objekt erzeugen. Bei sorgfältiger Umsetzung können Sie es templatisieren, ohne den Wert preiszugeben.

Aufbau des Secret-Manifests

Ein Kubernetes-Secret ist lediglich ein Manifest mit einem data-Abschnitt. Jeder Wert unter data muss Base64-kodierter Text sein.

apiVersion: v1
kind: Secret
metadata:
  name: db-credentials

Daten mit b64enc kodieren

Unter data kodieren Sie jeden Wert. Der Sprig-Helfer b64enc wandelt eine Zeichenkette im Klartext in das von Kubernetes erwartete Base64-Format um.

data:
  password: {{ .Values.password | b64enc }}

Mit stringData die Kodierung überspringen

Verwenden Sie stringData, wenn Sie b64enc nicht von Hand einsetzen möchten. Kubernetes kodiert diese Werte serverseitig für Sie.

stringData:
  password: {{ .Values.password | quote }}

Kodierung ist weiterhin kein Geheimnis

Denken Sie daran: Der in das Manifest gerenderte Wert ist lediglich kodiert. Wer ihn lesen kann, kann ihn sofort dekodieren.

Nicht in NOTES ausgeben

Ein häufiges Leck entsteht, wenn der Wert in NOTES.txt ausgegeben wird. Geben Sie stattdessen an, wie der Wert abgerufen werden kann, damit der Klartext niemals in der Befehlsausgabe landet.

Ein vorhandenes Secret wiederverwenden

Noch besser ist es, Benutzer auf ein existingSecret verweisen zu lassen, das sie außerhalb des Charts erstellt haben. So erhält Ihr Chart den Wert überhaupt nicht.

{{- if not .Values.existingSecret }}
kind: Secret
{{- end }}

Mit require einen Pflichtwert verlangen

Wenn ein Secret wirklich erforderlich ist, beendet die Funktion required das Rendern mit einer verständlichen Meldung, sobald der Wert fehlt.

password: {{ required "password is required" .Values.password | b64enc }}

Einbinden, nicht inline eintragen

Lassen Sie Pods über secretKeyRef oder ein eingebundenes Volume auf das Secret zugreifen, statt den tatsächlichen Wert direkt in eine Container-Umgebungsvariable einzutragen.

valueFrom:
  secretKeyRef:
    name: db-credentials
    key: password

Für Rotation annotieren

Damit Pods bei einer Änderung des Secrets neu gestartet werden, fügen Sie dem Deployment eine Prüfsummen-Annotation hinzu. Ein neuer Wert löst dann einen Neustart aus.

checksum/secret: {{ include (print $.Template.BasePath "/secret.yaml") . | sha256sum }}

Die Strategien kombinieren

Die sichersten Charts kombinieren mehrere Ansätze: Bevorzugen Sie vorhandene oder externe Secrets, kodieren Sie nur bei Bedarf und geben Sie den Wert niemals aus.

Schnelltest

Wie lassen Sie Kubernetes die Base64-Kodierung für Sie übernehmen?

Zusammenfassung

Sie haben gelernt, ein Secret sicher zu templatisieren: Kodieren Sie mit b64enc oder stringData, bevorzugen Sie vorhandene Secrets und geben Sie den Wert niemals aus. 🎉

Häufig gestellte Fragen

Ist die Lektion „Kubernetes-Secret-Ressourcen templatisieren“ kostenlos?

Ja — der vollständige Text von „Kubernetes-Secret-Ressourcen templatisieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Kubernetes-Secret-Ressourcen templatisieren“?

Secret-Objekte rendern, ohne Werte offenzulegen Du übst DevOps Bootcamp mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um DevOps Bootcamp zu starten?

Keine Vorkenntnisse erforderlich. DevOps Bootcamp auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Kubernetes-Secret-Ressourcen templatisieren“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser DevOps Bootcamp-Lektion Code schreiben und ausführen?

Ja. Jede DevOps Bootcamp-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Warum Secrets nicht in values.yaml gehören
  2. Values mit helm-secrets und SOPS verschlüsseln
  3. Secrets aus External Secrets Operators beziehen
  4. Kubernetes-Secret-Ressourcen templatisieren
← Zurück zu DevOps Bootcamp