Ответ
В Kubernetes неймспейсы создаются через kubectl или с помощью YAML-манифестов, применяемых через kubectl apply.
1. Через команду kubectl create namespace:
kubectl create namespace staging
2. Через декларативный YAML-манифест:
Создаю файл namespace-staging.yaml:
apiVersion: v1
kind: Namespace
metadata:
name: staging
labels:
environment: staging
team: backend
Затем применяю его:
kubectl apply -f namespace-staging.yaml
3. В рамках инфраструктуры как код (IaC): При использовании инструментов вроде Terraform с провайдером Kubernetes:
resource "kubernetes_namespace" "staging" {
metadata {
name = "staging"
labels = {
environment = "staging"
}
}
}
Важно: Создание неймспейса — это только первый шаг. Для полноценной изоляции обычно сразу настраиваю:
- ResourceQuotas и LimitRanges для контроля ресурсов.
- NetworkPolicies для сетевой изоляции.
- RBAC (Role, RoleBinding) для управления доступом пользователей и сервисных аккаунтов.
Неймспейсы логически группируют ресурсы (поды, сервисы, конфигурации) внутри кластера, что удобно для разделения сред (dev, staging, prod) или команд.