Lab 09 – Namespaces

Lab 09 – Namespaces

Cíl: ohraničit si práci a přestat psát -n. Kapitola: Namespaces

# 1 – co existuje teď
kubectl get ns

Čtyři namespacy má každý cluster. kube-system obsahuje pody control plane – dívat se ano, nasazovat tam ne.

# 2 – deklarativně (doporučeno)
cd ~
cat > ns-dev.yaml <<'YAML'
apiVersion: v1
kind: Namespace
metadata:
  name: dev
YAML
kubectl apply -f ns-dev.yaml

# 3 – imperativně, pro jednorázový
kubectl create ns test

# 4 – stejné jméno v obou, bez konfliktu
kubectl run web --image nginx:1.27 -n dev
kubectl run web --image nginx:1.27 -n test
kubectl get pods -n dev
kubectl get pods -A | grep ' web '

Jména jsou unikátní na namespace a druh objektu. O to přesně jde: dev i prod můžou mít web.

# 5 – v namespace vs. mimo namespace
kubectl api-resources --namespaced=true  | head -10
kubectl api-resources --namespaced=false | head -10
kubectl get nodes -n dev                 # -n se u uzlů tiše ignoruje
# 6 – nastavte dev jako výchozí pro tento kontext
kubectl config set-context --current --namespace=dev
kubectl get pods                         # -n netřeba
kubectl config view --minify | grep namespace

Tohle mění váš kubeconfig, ne cluster. Je to také způsob, jak lidé mažou věci na špatném místě – kubectl config get-contexts ukáže aktivní namespace a vyplatí se ho zkontrolovat před čímkoli destruktivním.

Úklid

# 7 – smazání namespace smaže všechno uvnitř
kubectl config set-context --current --namespace=default
kubectl delete ns test
kubectl delete -f ns-dev.yaml
kubectl get ns
Varování

Bez potvrzení, bez cesty zpět. Smazání namespace smaže všechny objekty v něm.