Obiectul Namespace în Kubernetes (kubectl)

Împarte un cluster fizic în sub-clustere logice izolate pe echipe, proiecte sau medii.

Sintaxă comandă
apiVersion: v1 | kind: Namespace | kubectl create namespace NUME

Ce face Obiectul Namespace

Un Namespace este un „dosar” logic în interiorul clusterului: numele resurselor (Deployment, Service, ConfigMap, Pod) trebuie să fie unice în interiorul unui namespace, dar două namespace-uri diferite (staging și prod) pot avea fiecare propriul Deployment api fără niciun conflict.

La instalare, un cluster vine cu patru namespace-uri standard: default (folosit când nu specifici -n), kube-system (componentele interne Kubernetes), kube-public și kube-node-lease. Unele resurse nu aparțin niciunui namespace (sunt la nivel de cluster): Node, PersistentVolume, ClusterRole, StorageClass și Namespace-ul însuși (vezi kubectl api-resources --namespaced=false).

Pe un namespace poți atașa un ResourceQuota (plafon total de CPU, memorie și număr de pod-uri pe care echipa respectivă are voie să le consume) și un LimitRange (valori implicite requests/limits pentru pod-urile care nu le specifică).

Opțiuni și argumente

Opțiune / Parametru Descriere
kubectl get ns Listează toate namespace-urile din cluster (ns este prescurtarea pentru namespaces).
kubectl create ns NUME Creează rapid un namespace nou.
-n, --namespace=NUME Opțiune globală pe orice comandă kubectl pentru a lucra în acel namespace.
ResourceQuota Obiect care limitează suma totală de CPU/memorie/obiecte dintr-un namespace.
LimitRange Obiect care impune valori implicite și min/max de CPU/memorie per container.

Exemple

Exemplul 1: Namespace cu cotă de resurse (ResourceQuota)

Toate pod-urile din namespace-ul shop nu vor putea depăși cumulat 8 nuclee CPU și 16 GiB RAM.

apiVersion: v1
kind: Namespace
metadata:
  name: shop
---
apiVersion: v1
kind: ResourceQuota
metadata:
  name: cota-echipa-shop
  namespace: shop
spec:
  hard:
    requests.cpu: "4"
    requests.memory: 8Gi
    limits.cpu: "8"
    limits.memory: 16Gi
    pods: "30"

Ieșire în terminal

namespace/shop created
resourcequota/cota-echipa-shop created

Exemplul 2: Inspectarea consumului față de cota alocată pe namespace

kubectl describe quota cota-echipa-shop -n shop

Ieșire în terminal

Name:            cota-echipa-shop
Namespace:       shop
Resource         Used    Hard
--------         ----    ----
limits.cpu       3500m   8
limits.memory    2560Mi  16Gi
pods             9       30
requests.cpu     1100m   4
requests.memory  1280Mi  8Gi

Greșeli frecvente

  • Un Namespace izolează numele și permisiunile RBAC, dar nu izolează traficul de rețea în mod implicit: un pod din staging poate apela http://api.prod.svc.cluster.local dacă nu definești un NetworkPolicy.
  • Dacă pe un namespace există un ResourceQuota pe CPU/memorie, orice Pod creat fără secțiunea resources în YAML va fi respins (dacă nu există și un LimitRange cu valori implicite).

Comenzi înrudite

  • kubectl config: Gestionează fișierul kubeconfig: clustere, utilizatori, contexte și namespace-ul implicit.
  • kubectl api-resources: Listează toate tipurile de resurse disponibile în cluster, cu prescurtări și grupuri API.
  • kubectl delete: Șterge resurse după nume, etichete sau fișierele YAML din care au fost create.
  • Obiectul Pod: Cea mai mică unitate de execuție în Kubernetes: unul sau mai multe containere care împart IP-ul și volumele.
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Obiectul Namespace

Ai o nelămurire despre utilizarea comenzii Obiectul Namespace sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.