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

Для логического разделения различных групп ресурсов Kubernetes предоставляет нам функцию пространства имен (неймспейсы).

Это также удобно, когда у вас есть большая среда, которой управляют несколько пользователей или команд, и каждому из них нужно собственное “пространство” для ресурсов, которыми они должны управлять и администрировать.

Это гораздо лучшее решение, чем создание многочисленных кластеров Kubernetes только для облегчения работы различных групп сервисов или развертываний, а также для изоляции команд в их собственном пространстве.

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

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

В этом руководстве мы рассмотрим различные способы управления пространствами имен в Kubernetes в системе 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: v1kind: Namespacemetadata: 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, без необходимости создавать полностью отдельные кластеры.

Это удобно для больших команд, которым поручено управлять различными частями кластера, или когда у нас есть множество разнообразных ресурсов, которые должны быть изолированы и логически отделены друг от друга.

Друзья помогите этому контенту стать доступнее в социальных сетях.

Не проходи мимо жмакни по кнопке возможно кому то еще он будет полезен!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *