Для логического разделения различных групп ресурсов Kubernetes предоставляет нам функцию пространства имен (неймспейсы).
Это также удобно, когда у вас есть большая среда, которой управляют несколько пользователей или команд, и каждому из них нужно собственное “пространство” для ресурсов, которыми они должны управлять и администрировать.
Это гораздо лучшее решение, чем создание многочисленных кластеров Kubernetes только для облегчения работы различных групп сервисов или развертываний, а также для изоляции команд в их собственном пространстве.
Каждое пространство имен представляет собой отдельный виртуальный кластер, и по умолчанию ресурсы в разных пространствах имен хорошо изолированы друг от друга и не могут общаться друг с другом, но это можно изменить, отредактировав различные сетевые политики.
В целом, рекомендуется отключать связь между пространствами имен, чтобы ресурсы оставались изолированными и более безопасными за счет уменьшения поверхности атаки.
В этом руководстве мы рассмотрим различные способы управления пространствами имен в Kubernetes в системе Linux.
📁Как скопировать файлы и создавать целевые каталоги одновременно на Linux
Вы узнаете о командах kubectl, которые можно использовать для управления пространствами имен и просмотра соответствующей информации о пространстве имен.
Давайте начнем!
Приведенные ниже примеры предполагают, что у вас уже запущен кластер Kubernetes и есть доступ к команде kubectl.
Чтобы просмотреть все настроенные пространства имен в кластере Kubernetes, выполните эту команду:
$ kubectl get namespaces NAME STATUS AGE default Active 22s kube-node-lease Active 24s kube-public Active 24s kube-system Active 24s
Поскольку мы еще не настроили никаких дополнительных пространств имен, вывод просто показывает четыре пространства имен Kubernetes по умолчанию:
- default – это пространство имен, в которое ваши ресурсы будут попадать по умолчанию, если не указано иное.
- kube-node-lease – пространство имен для объектов аренды каждого узла, которые посылают пульс обратно в плоскость управления.
- kube-system – пространство имен для любых объектов, созданных самой Kubernetes.
- kube-public – это пространство имен для ресурсов, которые должны быть доступны всем пользователям, независимо от того, аутентифицированы они или нет.
Чтобы просмотреть информацию о конкретном пространстве имен, вы можете выполнить:
$ kubectl get namespaces [name of namespace]
Аргумент describe даст вам дополнительную информацию и подробности о пространстве имен, которое вы хотите исследовать:
$ kubectl describe namespaces [name of namespace]
Чтобы создать новое пространство имен, мы можем использовать следующий синтаксис YAML в качестве шаблона:
apiVersion: v1
kind: Namespace
metadata:
name: [name of namespace]
Затем выполните следующую команду, чтобы добавить его в Kubernetes:
$ kubectl create -f ./my-new-namespace.yaml
Другой способ – создать пространство имен императивно, используя следующий синтаксис команды kubectl:
$ kubectl create namespace [name of namespace]
Чтобы удалить пространство имен, мы можем выполнить следующую команду.
$ kubectl delete namespaces [name of namespace]
Помните, что предыдущая команда также удалит все ресурсы, существующие в данном пространстве имен.
Далее рассмотрим, как добавить объект в пространство имен.
В качестве примера мы создадим новый экземпляр Nginx и добавим его в пространство имен my-servers:
$ kubectl run --image=nginx nginx-server --port=80 -n=my-servers
Заключение
В этом руководстве мы рассмотрели, как использовать пространства имен в Kubernetes на системе Linux.
Пространства имен – это хорошая функция, которую мы можем использовать для изоляции ресурсов в Kubernetes, без необходимости создавать полностью отдельные кластеры.
Это удобно для больших команд, которым поручено управлять различными частями кластера, или когда у нас есть множество разнообразных ресурсов, которые должны быть изолированы и логически отделены друг от друга.
см. также:
- ☸️ Kubectl Шпаргалка всех необходимых команд Kubernetes часть 1
- ☸️ Как использовать команду Scale в Kubernetes
- ☸️ Как создать и управлять подом на Kubernetes
- ☸️ Как развернуть MySQL на Kubernetes
- ☸️ Принудительное удаление зависших подов в Kubernetes