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

Зачем нужны пространства имен k8s

by itisgood

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

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

см. также:

Loading

You may also like

Leave a Comment