Что такое namespace в Kubernetes
Что проверяют
Не определение, а понимание границ: что namespace действительно разделяет, а что нет. Это отличает человека, который эксплуатировал кластер, от того, кто прочитал первую страницу документации.
Как отвечать
Namespace это область имён для объектов кластера. Имена уникальны внутри неё, поэтому одноимённые развёртывания в разных окружениях не конфликтуют. К пространству привязаны квоты (ResourceQuota, LimitRange), права (Role и RoleBinding), сетевые политики и учётные записи сервисов. В DNS появляется отдельная метка: к сервису соседнего пространства обращаются по имени вида service.namespace.svc.cluster.local.
Дальше важно назвать, чего namespace не делает. Узлы общие, планировщик один, и под из одного пространства спокойно занимает процессор соседа, если нет квот и лимитов. Сеть по умолчанию плоская: без NetworkPolicy любой под достучится до любого сервиса кластера. Часть объектов вообще не имеет пространства: узлы, PersistentVolume, StorageClass, ClusterRole, определения пользовательских ресурсов; полный список даёт kubectl api-resources --namespaced=false.
Заканчивают практикой: пространства под команды и окружения плюс квоты и сетевые политики по умолчанию, а для настоящей изоляции арендаторов отдельные кластеры или виртуальные кластеры.
Где спотыкаются
Называют namespace средством безопасности и на этом останавливаются. Без сетевых политик, квот и аккуратного RBAC это только префикс в именах, и соседняя команда способна и трафик увидеть, и ресурсы выесть.
Кладут тестовое и боевое окружение в один кластер, полагаясь на разные пространства. Разделяются объекты, а не ядро, планировщик и диск узла: шумный сосед уронит прод.
Удаляют пространство и получают вечный статус Terminating. Причина обычно в финализаторе ресурса, чей контроллер уже снесли. Разбирают конкретный объект, а не снимают финализаторы поголовно, иначе в кластере остаются потерянные ресурсы.