Cum să gestionezi secretele cu Secret în Kubernetes
DodaTech
Updated 2025-01-15
2 min read
In this tutorial, you'll learn about Cum să gestionezi secretele cu Secret în Kubernetes. We cover key concepts, practical examples, and best practices.
Problema
Aplicațiile tale au nevoie de parole, token-uri de acces și chei API, dar nu vrei să le stochezi în plain text în cod sau în ConfigMap-uri.
Soluția Pas cu Pas
1. Creează un Secret din linia de comandă
kubectl create secret generic db-secret \
--from-literal=username=admin \
--from-literal=password=s3cret!
Output:
secret/db-secret created
2. Creează un Secret din fișier
echo -n "admin" > ./username.txt
echo -n "s3cret!" > ./password.txt
kubectl create secret generic db-secret --from-file=./username.txt --from-file=./password.txt
3. Creează un Secret din YAML
apiVersion: v1
kind: Secret
metadata:
name: db-secret
type: Opaque
data:
username: YWRtaW4= # base64("admin")
password: czNjcmV0IQ== # base64("s3cret!")
kubectl apply -f secret.yaml
4. Montează Secret ca variabile de mediu
apiVersion: v1
kind: Pod
metadata:
name: app-pod
spec:
containers:
- name: app
image: my-app:latest
env:
- name: DB_USERNAME
valueFrom:
secretKeyRef:
name: db-secret
key: username
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: db-secret
key: password
5. Montează Secret ca volum
spec:
containers:
- name: app
image: my-app:latest
volumeMounts:
- name: secret-volume
mountPath: /etc/secrets
readOnly: true
volumes:
- name: secret-volume
secret:
secretName: db-secret
6. Citește Secret-ul
kubectl get secret db-secret -o jsonpath='{.data.password}' | base64 --decode
Output:
s3cret!
Prevenție
- Activează criptarea la nivel de etcd pentru Secrets.
- Folosește un tool extern (Sealed Secrets, External Secrets Operator, Vault) pentru management avansat.
- Nu face commit la Secrets în Git. Folosește
sopssauhelm-secrets. - Restricționează accesul la Secrets cu RBAC.
Greșeli Comune
- Valori ne-encode în YAML —
datanecesită valori base64,stringDataacceptă text simplu. - Commit în Git — Secrets în repositorii sunt un risc major de securitate.
- Secret prea mare — Limita este 1 MB. Pentru fișiere mari, folosește un volum extern.
- Fără criptare etcd — Secrets sunt stocați în plain text în etcd dacă nu e configurată criptarea.
- Acces nere strâns — Oricine cu acces la API poate citi Secrets din namespace-ul respectiv.
Exercițiu
Creează un Secret cu trei perechi cheie-valoare, montează-l ca variabile de mediu într-un Pod și verifică valorile cu kubectl exec.
FAQ
Construit de dezvoltatorii Doda Browser, DodaZIP și Durga Antivirus Pro. Uneltele DodaTech se integrează seamless cu Kubernetes pentru productivitate și securitate sporite.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro