Kubernetes · 3 min read · Nov 03, 2025

Как создать пространства имен в Kubernetes

Пространство имен полезно, когда несколько команд используют один и тот же кластер. Это используется, когда существует вероятность коллизии имен. Это может быть виртуальная стена между несколькими кластерами. Например, мы не можем иметь поды с одинаковыми именами в кластере Kubernetes, но используя пространство имен, мы можем виртуально разделить кластер и иметь поды с одинаковыми именами.

Некоторые из важных функций пространства имен следующие.

  1. Оно помогает в коммуникации между подами, использующими одно и то же пространство имен.
  2. Оно действует как виртуальный кластер, который может находиться поверх одного и того же физического кластера.
  3. Оно обеспечивает логическое разделение между командами и их окружениями.

В этой статье мы создадим пространство имен и создадим под в только что созданном пространстве имен. Мы также увидим, как пространство имен может быть установлено как пространство имен по умолчанию.

Предварительные требования

  1. Кластер Kubernetes с как минимум 1 рабочим узлом.
    Если вы хотите научиться создавать кластер Kubernetes, нажмите здесь. Этот гид поможет вам создать кластер Kubernetes с 1 мастер-узлом и 2 узлами на AWS Ubuntu 18.04 EC2 Instances.

Что мы будем делать

  1. Создать пространства имен

Создать пространства имен

Чтобы перечислить все пространства имен, доступные в кластере Kubernetes, выполните следующую команду. Вы можете иметь несколько пространств имен, и пространства имен могут иметь метаданные пространства имен.

kubectl get namespace #Получить все пространства имен в кластере

get-namespaces for kubernetes namespace

Теперь давайте попробуем создать под в конкретном пространстве имен, которое не существует.

Чтобы создать под в пространстве имен “test-env”, выполните следующую команду.

kubectl run nginx --image=nginx --namespace=test-env #Попробуйте создать под в пространстве имен, которое не существует.

Под не будет создан в пространстве имен, которое не существует, поэтому сначала нам нужно создать пространство имен.

Чтобы создать пространство имен “test-env”, выполните следующую команду (k8s создать пространство имен).

kubectl create namespace test-env #Создать пространство имен
kubectl get namespace #Получить список пространств имен

create-namespace

Теперь у нас есть пространство имен, в котором мы хотим создать под.

Чтобы создать под в пространстве имен, которое мы создали, передайте опцию –namespace=test-env команде.

kubectl run nginx --image=nginx --namespace=test-env #Создать под в пространстве имен.

Если вы попытаетесь получить поды, не указывая пространство имен, вы не получите детали пода.

kubectl get pods #Получить список подов

Чтобы получить детали пода, который принадлежит пространству имен “test-env”, используйте следующую команду.

kubectl get pods --namespace=test-env #Получить список подов в указанном пространстве имен

create-pod-in-the-namespace-created

Если вы хотите установить ваше пространство имен как пространство имен по умолчанию, чтобы не было необходимости указывать опцию пространства имен в команде, используйте следующую команду.

kubectl config set-context --current --namespace=test-env #Установить пространство имен по умолчанию

Теперь нет необходимости указывать пространство имен в команде, чтобы получить детали пода.

kubectl get pods #Получить список подов из пространства имен по умолчанию

Чтобы переключиться на пространство имен по умолчанию, используйте следующую команду.

kubectl config set-context --current --namespace=default #Проверить пространство имен по умолчанию
kubectl get pods #Получить список подов

Чтобы проверить, какое пространство имен является пространством имен по умолчанию, используйте следующие команды.

kubectl config view --minify | grep namespace: #Извлечь пространство имен из файла конфигурации kubernetes.
kubectl config set-context --current --namespace=test-env #Установить пространство имен по умолчанию в файле конфигурации.
kubectl config view --minify | grep namespace:

check-current-namespace

Проверьте, какие ресурсы Kubernetes являются пространством имен, выполните следующую команду.

kubectl api-resources --namespaced=true #Получить объекты Kubernetes, которые могут находиться в пространствах имен

resources-with-namespace

Чтобы увидеть, какие ресурсы Kubernetes не находятся в пространстве имен, используйте следующую команду.

kubectl api-resources --namespaced=false #Получить список объектов Kubernetes, которые никогда не могут находиться в пространстве имен

resources-without-namespace

Вы можете получить детали пространства имен, используя команду, указанную ниже.

kubectl get namespaces #Получить список пространств имен.
kubectl describe namespace test-env #Получить детали пространства имен.

describe-namespace

Пространство имен также может быть создано с помощью файла .yml.

vim namespace-using-file.yml #Создать файл определения пространства имен

create-namespace-using-yml-file

Выполните следующую команду, чтобы создать пространство имен, указанное в файле определения объекта.

kubectl create -f namespace-using-file.yml #Создать пространство имен с помощью файла .yml
kubectl get namespaces #Получить список пространств имен

get-namespaces

Когда вам больше не нужно ваше пространство имен, его можно просто удалить с помощью следующей команды.

kubectl get namespaces #Получить список пространств имен
kubectl delete namespaces env-prod test-env #Удалить пространство имен
kubectl get namespaces #Получить список пространств имен

delete-namespaces

Используйте команду “kubectl change namespace”, чтобы переключиться на другое пространство имен.

Заключение

В этой статье мы узнали о пространствах имен, создании пространства имен и изменении пространства имен по умолчанию, проверке ресурсов Kubernetes, которые находятся и не находятся в пространстве имен. Мы также увидели, как объект Kubernetes, здесь под, может быть создан в пространстве имен по нашему выбору.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.