Kubernetes · 3 min read · Nov 03, 2025
Как создать пространства имен в Kubernetes

Пространство имен полезно, когда несколько команд используют один и тот же кластер. Это используется, когда существует вероятность коллизии имен. Это может быть виртуальная стена между несколькими кластерами. Например, мы не можем иметь поды с одинаковыми именами в кластере Kubernetes, но используя пространство имен, мы можем виртуально разделить кластер и иметь поды с одинаковыми именами.
Некоторые из важных функций пространства имен следующие.
- Оно помогает в коммуникации между подами, использующими одно и то же пространство имен.
- Оно действует как виртуальный кластер, который может находиться поверх одного и того же физического кластера.
- Оно обеспечивает логическое разделение между командами и их окружениями.
В этой статье мы создадим пространство имен и создадим под в только что созданном пространстве имен. Мы также увидим, как пространство имен может быть установлено как пространство имен по умолчанию.
Предварительные требования
- Кластер Kubernetes с как минимум 1 рабочим узлом.
Если вы хотите научиться создавать кластер Kubernetes, нажмите здесь. Этот гид поможет вам создать кластер Kubernetes с 1 мастер-узлом и 2 узлами на AWS Ubuntu 18.04 EC2 Instances.
Что мы будем делать
- Создать пространства имен
Создать пространства имен
Чтобы перечислить все пространства имен, доступные в кластере Kubernetes, выполните следующую команду. Вы можете иметь несколько пространств имен, и пространства имен могут иметь метаданные пространства имен.
kubectl get namespace #Получить все пространства имен в кластере
Теперь давайте попробуем создать под в конкретном пространстве имен, которое не существует.
Чтобы создать под в пространстве имен “test-env”, выполните следующую команду.
kubectl run nginx --image=nginx --namespace=test-env #Попробуйте создать под в пространстве имен, которое не существует.Под не будет создан в пространстве имен, которое не существует, поэтому сначала нам нужно создать пространство имен.
Чтобы создать пространство имен “test-env”, выполните следующую команду (k8s создать пространство имен).
kubectl create namespace test-env #Создать пространство именkubectl get namespace #Получить список пространств имен
Теперь у нас есть пространство имен, в котором мы хотим создать под.
Чтобы создать под в пространстве имен, которое мы создали, передайте опцию –namespace=test-env команде.
kubectl run nginx --image=nginx --namespace=test-env #Создать под в пространстве имен.Если вы попытаетесь получить поды, не указывая пространство имен, вы не получите детали пода.
kubectl get pods #Получить список подовЧтобы получить детали пода, который принадлежит пространству имен “test-env”, используйте следующую команду.
kubectl get pods --namespace=test-env #Получить список подов в указанном пространстве имен
Если вы хотите установить ваше пространство имен как пространство имен по умолчанию, чтобы не было необходимости указывать опцию пространства имен в команде, используйте следующую команду.
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:
Проверьте, какие ресурсы Kubernetes являются пространством имен, выполните следующую команду.
kubectl api-resources --namespaced=true #Получить объекты Kubernetes, которые могут находиться в пространствах имен
Чтобы увидеть, какие ресурсы Kubernetes не находятся в пространстве имен, используйте следующую команду.
kubectl api-resources --namespaced=false #Получить список объектов Kubernetes, которые никогда не могут находиться в пространстве имен
Вы можете получить детали пространства имен, используя команду, указанную ниже.
kubectl get namespaces #Получить список пространств имен.kubectl describe namespace test-env #Получить детали пространства имен.
Пространство имен также может быть создано с помощью файла .yml.
vim namespace-using-file.yml #Создать файл определения пространства имен
Выполните следующую команду, чтобы создать пространство имен, указанное в файле определения объекта.
kubectl create -f namespace-using-file.yml #Создать пространство имен с помощью файла .ymlkubectl get namespaces #Получить список пространств имен
Когда вам больше не нужно ваше пространство имен, его можно просто удалить с помощью следующей команды.
kubectl get namespaces #Получить список пространств именkubectl delete namespaces env-prod test-env #Удалить пространство именkubectl get namespaces #Получить список пространств имен
Используйте команду “kubectl change namespace”, чтобы переключиться на другое пространство имен.
Заключение
В этой статье мы узнали о пространствах имен, создании пространства имен и изменении пространства имен по умолчанию, проверке ресурсов Kubernetes, которые находятся и не находятся в пространстве имен. Мы также увидели, как объект Kubernetes, здесь под, может быть создан в пространстве имен по нашему выбору.
Get new posts in your inbox
No spam. Unsubscribe anytime.