Skapa mallar för Kubernetes Secret-resurser
Rendera Secret-objekt utan att läcka värden
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-credentialsKoda 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: passwordLä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. 🎉
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
- Varför Secrets inte hör hemma i values.yaml
- Kryptera värden med helm-secrets och SOPS
- Hämta från externa Secrets Operators
- Skapa mallar för Kubernetes Secret-resurser