# Namespaces

Разделяет кластер на виртуальные кластеры. Это не Namespace ядра! По умолчанию объекты попадают в default namespace. Настраиваются свои пользователи, права, ресурсы и политики.

**Создание и привязка к пространству имен**

Императивный способ:

```
kubectl create ns hydra
```

Декларативный способ: создать yaml файл и применить его.

---

Для привязки объекта к пространству имен в метаданных нужно указать namespace

```
apiVersion: v1
kind: ServiceAccount
metadata:
  namespace: shield <<==== Namespace
  name: default
```

**Структура YAML файла**

Верхний уровень

<table border="1" id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80-%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5-ki" style="border-collapse: collapse; width: 100%; height: 117.766px;"><thead><tr style="height: 29.7969px;"><td class="align-center" style="width: 31.7044%; height: 29.7969px;">Параметр</td><td class="align-center" style="width: 68.2956%; height: 29.7969px;">Описание</td></tr></thead><tbody><tr style="height: 28.375px;"><td style="width: 31.7044%; height: 28.375px;">Kind</td><td style="width: 68.2956%; height: 28.375px;">Тип определяемого объекта, Namespace

</td></tr><tr style="height: 29.7969px;"><td style="width: 31.7044%; height: 29.7969px;">apiVersion</td><td style="width: 68.2956%; height: 29.7969px;">Версия API

</td></tr><tr style="height: 29.7969px;"><td style="width: 31.7044%; height: 29.7969px;">metadata</td><td style="width: 68.2956%; height: 29.7969px;">Метаданные

</td></tr></tbody></table>

Metadata

<table border="1" id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80-%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5-na" style="border-collapse: collapse; width: 100%; height: 117.766px;"><thead><tr style="height: 29.7969px;"><td class="align-center" style="width: 31.7044%; height: 29.7969px;">Параметр</td><td class="align-center" style="width: 68.2956%; height: 29.7969px;">Описание</td></tr></thead><tbody><tr style="height: 28.375px;"><td style="width: 31.7044%; height: 28.375px;">name</td><td style="width: 68.2956%; height: 28.375px;">Имя</td></tr><tr style="height: 29.7969px;"><td style="width: 31.7044%; height: 29.7969px;">labels</td><td style="width: 68.2956%; height: 29.7969px;">метки</td></tr></tbody></table>

**Примеры**

```
kind: Namespace
apiVersion: v1
metadata:
  name: shield
  labels:
    env: marvel
```

**Основные команды**

<div id="bkmrk-%D0%9A%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%B0-%D0%94%D0%BE%D0%BF.-%D0%BF%D0%B0%D1%80.-%D0%9E%D0%BF"><table border="1" style="border-collapse: collapse; width: 100%;"><thead><tr><td class="align-center" style="width: 24.9106%;">Команда</td><td class="align-center" style="width: 21.4483%;">Доп. пар.</td><td class="align-center" style="width: 53.6411%;">Описание</td></tr></thead><tbody><tr><td style="width: 24.9106%;">kubectl api-resources</td><td style="width: 21.4483%;">  
</td><td style="width: 53.6411%;">Список API ресурсов, в частности - делятся ли на namespace</td></tr><tr><td style="width: 24.9106%;">kubectl get namespaces</td><td style="width: 21.4483%;">  
</td><td style="width: 53.6411%;">Список пространств имен</td></tr><tr><td style="width: 24.9106%;">kubectl describe ns name\_ns</td><td style="width: 21.4483%;">  
</td><td style="width: 53.6411%;">Информация по name\_ns пространству имен</td></tr><tr><td style="width: 24.9106%;">Все команды получения информации</td><td style="width: 21.4483%;">--namespace default</td><td style="width: 53.6411%;">Фильтрация по определенному namespace</td></tr><tr><td style="width: 24.9106%;">  
</td><td style="width: 21.4483%;">--all-namespaces</td><td style="width: 53.6411%;">Для всех namespace</td></tr><tr><td style="width: 24.9106%;">kubectl create ns ns\_name</td><td style="width: 21.4483%;">  
</td><td style="width: 53.6411%;">Создание пространства имен ns\_name</td></tr><tr><td style="width: 24.9106%;">kubectl delete ns ns\_name</td><td style="width: 21.4483%;">  
</td><td style="width: 53.6411%;">Удаление пространства имен ns\_name</td></tr><tr><td style="width: 24.9106%;">kubectl config set-context --current --namespace shield</td><td style="width: 21.4483%;">  
</td><td style="width: 53.6411%;">Установка пространства имен по умолчанию</td></tr></tbody></table>

</div>