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.