Через что создаются неймспейсы в Kubernetes?

«Через что создаются неймспейсы в Kubernetes?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В 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) или команд.