Управление namespaces в Kubernetes
Создать тестовый namespace:
console
$ kubectl create namespace testnamespaceNamespace создан:
text
namespace/testnamespace createdУбедиться, что namespace действительно создан:
console
$ kubectl get namespaces | grep testnamespaceВывод:
text
testnamespace Active 18mДобавить метку env=staging:
console
$ kubectl label namespace testnamespace env=stagingВывод:
text
namespace/testnamespace labeledПоказать labels для тестового namespace:
console
$ kubectl get namespace testnamespace --show-labelsДобавленный label присутствует в списке:
text
NAME STATUS AGE LABELS
testnamespace Active 24m env=staging,kubernetes.io/metadata.name=testnamespaceУдалить добавленный label:
console
$ kubectl label namespace testnamespace env-Вывод:
text
namespace/testnamespace unlabeledУбедиться, что labels для тестового namespace удален:
console
$ kubectl get namespace testnamespace --show-labelsУдалить namespace:
console
$ kubectl delete namespace testnamespaceВывод:
text
namespace "testnamespace" deletedУбедиться, что namespace действительно удалён:
console
$ kubectl get namespaces | grep testnamespaceДобавить namespace через YAML:
console
$ cat > testnamespace.yaml <<'EOF'
apiVersion: v1
kind: Namespace
metadata:
name: testnamespace
labels:
env: staging
annotations:
description: "Тестовый namespace для разработки"
EOF
$ kubectl apply -f testnamespace.yamlУбедиться, что тестовый namespace создан с нужными параметрами:
console
$ kubectl describe namespace testnamespaceПрисутствует label (env=staging) и annotation (description: Тестовый namespace для разработки):
text
Name: testnamespace
Labels: env=staging
kubernetes.io/metadata.name=testnamespace
Annotations: description: Тестовый namespace для разработки
Status: Active
No resource quota.
No LimitRange resource.Удалить namespace:
console
$ kubectl delete namespace testnamespace