Helm Academy · Lektion

Skapa mallar för Kubernetes Secret-resurser

Rendera Secret-objekt utan att läcka värden

Lektion 4 av 413 steg

Skapa mallar för Kubernetes Secret-resurser är en gratis lektion i Helm Academy på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Helm Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Helm Academy innehåller totalt 4 lektioner.

Chart kan rendera Secret

Ibland måste ditt chart själv skapa ett Kubernetes-objekt av typen Secret. Med rätt hantering kan du skapa en mall för ett sådant utan att läcka värdet.

Så ser Secret-manifestet ut

En Kubernetes-Secret är helt enkelt ett manifest med en datasektion. Varje värde under data måste vara Base64-kodad text.

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

Koda data med b64enc

Under data kodar du varje värde. Sprig-hjälpfunktionen b64enc omvandlar en sträng i klartext till det Base64-format som Kubernetes förväntar sig.

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

Använd stringData för att slippa kodning

Föredra stringData när du vill slippa använda b64enc för hand. Kubernetes kodar dessa värden åt dig på serversidan.

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

Kodning är fortfarande inte hemligt

Kom ihåg att värdet som renderas i manifestet bara är kodat. Den som kan läsa det kan dekoda det direkt.

Skriv inte ut det i NOTES

En vanlig läcka är att skriva ut värdet i NOTES.txt. Skriv i stället ut hur det kan hämtas, så att klartexten aldrig hamnar i kommandots utdata.

Återanvänd en befintlig Secret

Ännu bättre är att låta användarna ange en existingSecret som de har skapat utanför chartet, så att ditt chart aldrig tar emot värdet över huvud taget.

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

Kräv ett obligatoriskt värde med require

När en hemlighet verkligen krävs avbryter funktionen required renderingen med ett tydligt meddelande om värdet saknas.

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

Montera, bädda inte in

Låt poddar läsa Secret via secretKeyRef eller en monterad volym i stället för att bädda in det bokstavliga värdet i en containermiljövariabel.

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

Lägg till en annotation för rotation

Om poddar ska rullas om när en Secret ändras lägger du till en checksumme-annotation i deploymentet, så att ett nytt värde utlöser en omstart.

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

Kombinera strategierna

De bästa chart kombinerar flera idéer: föredra befintliga eller externa hemligheter, koda bara när det behövs och skriv aldrig ut värdet.

Snabbkontroll

Hur låter du Kubernetes utföra Base64-kodningen åt dig?

Sammanfattning

Du lärde dig att skapa en mall för en Secret på ett säkert sätt: koda med b64enc eller stringData, föredra befintliga hemligheter och skriv aldrig ut värdet. 🎉

Gratis att börja

Lär dig YAML med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”Skapa mallar för Kubernetes Secret-resurser” gratis?

Ja – hela texten till ”Skapa mallar för Kubernetes Secret-resurser” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Helm Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Helm Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Skapa mallar för Kubernetes Secret-resurser”?

Rendera Secret-objekt utan att läcka värden Ni övar på Helm Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Helm Academy?

Du behöver inga förkunskaper. Utbildningen i Helm Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Skapa mallar för Kubernetes Secret-resurser”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Helm Academy-lektionen?

Ja. Varje Helm Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Varför Secrets inte hör hemma i values.yaml
  2. Kryptera värden med helm-secrets och SOPS
  3. Hämta från externa Secrets Operators
  4. Skapa mallar för Kubernetes Secret-resurser
← Tillbaka till Helm Academy