Cum să organizezi resursele cu Namespace-uri în Kubernetes
In this tutorial, you'll learn about Cum să organizezi resursele cu Namespace. We cover key concepts, practical examples, and best practices.
Problema
Toate resursele tale Kubernetes sunt în namespace-ul default. Pe măsură ce aplicațiile cresc, devine dificil să gestionezi permisiunile, resursele și vizibilitatea între echipe și medii.
Soluția Pas cu Pas
1. Creează un Namespace
apiVersion: v1
kind: Namespace
metadata:
name: development
kubectl apply -f namespace.yaml
Sau direct:
kubectl create namespace development
Output:
namespace/development created
2. Listează Namespace-urile
kubectl get namespaces
Output:
NAME STATUS AGE
default Active 30d
development Active 10s
kube-system Active 30d
kube-public Active 30d
kube-node-lease Active 30d
3. Rulează un Pod într-un Namespace specific
kubectl run nginx --image=nginx --namespace=development
4. Configurează namespace-ul implicit pentru context
kubectl config set-context --current --namespace=development
5. Creează un ResourceQuota
apiVersion: v1
kind: ResourceQuota
metadata:
name: dev-quota
namespace: development
spec:
hard:
requests.cpu: "4"
requests.memory: 8Gi
limits.cpu: "8"
limits.memory: 16Gi
pods: "10"
kubectl apply -f quota.yaml
6. Creează un LimitRange
apiVersion: v1
kind: LimitRange
metadata:
name: dev-limits
namespace: development
spec:
limits:
- default:
cpu: 500m
memory: 512Mi
defaultRequest:
cpu: 200m
memory: 256Mi
type: Container
7. Șterge un Namespace și toate resursele din el
kubectl delete namespace development
Atenție: Ștergerea unui namespace șterge toate resursele din el.
Prevenție
- Folosește namespace-uri separate pentru medii (dev, staging, production).
- Aplică ResourceQuota și LimitRange pentru a preveni consumul excesiv.
- Folosește NetworkPolicy pentru a izola namespace-urile la nivel de rețea.
- Nu folosi namespace-ul
defaultpentru resurse importante.
Greșeli Comune
- Resurse în namespace-ul default — Fără izolare și fără control al accesului.
- Namespace șters accidental — Toate resursele din el se pierd.
- ResourceQuota nerealistă — Prea restrictivă blochează deploy-urile; prea permisivă nu își atinge scopul.
- NetworkPolicy lipsă — Pod-urile din namespace-uri diferite pot comunica implicit.
- Kubectl fără
--namespace— Comenzile se execută pe namespace-ul implicit din context.
Exercițiu
Creează namespace-urile dev, staging și prod, aplică ResourceQuota pe dev, deploy-uiește un Pod în fiecare și verifică izolarea între namespace-uri.
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