Как изменить системное пространство имен? - PullRequest
0 голосов
/ 27 июня 2018

Все системные службы в Kubernetes развернуты в пространстве имен, обычно называемом kube-system. Откуда это? Что если я хотел бы изменить это на другое пространство имен?

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Все системные службы в Kubernetes развернуты в пространстве имен, обычно называемом kube-system. Откуда это?

Как отмечено в хорошей документации есть три пространства имен, которые Kubernetes изначально запускает с:

  • default - Пространство имен по умолчанию для объектов без другого пространства имен.
  • kube-system - Пространство имен для объектов, созданных системой Kubernetes.
  • kube-public - Пространство имен создается автоматически и доступно для чтения всем пользователям (включая тех, кто не прошел проверку подлинности). Это пространство имен в основном зарезервировано для использования кластером, в случае если некоторые ресурсы должны быть видимыми и доступными для чтения во всем кластере. Открытый аспект этого пространства имен - это всего лишь соглашение, а не требование.

Вы можете изменить default пространство имен на любое пространство имен по своему вкусу, используя kubectl config контекстную обработку.

Что если я хотел бы изменить это на другое пространство имен?

Это было бы запутанным и довольно рискованным делом ... Для кластера, созданного kubeadm, вы можете найти соответствующие манифесты в / etc / kubernetes / manifest, но там не просто достаточно изменить пространство имен, есть массив карт конфигурации, сертификаты и вещи для рассмотрения пространства имен. И даже если вам удастся это сделать, то есть причина для удаления флага api-сервера master-service-namespace, поскольку вы можете прервать неявные ссылки GKE, и могут возникнуть подобные проблемы. Все сводится к тому, что не рекомендуется менять пространство имен kube-system.

Edit:

Ниже приведена выдержка из kuberentes source , где вы можете увидеть, как эти пространства имен изначально определены.

// NamespaceDefault means the object is in the default namespace which is applied when not specified by clients
NamespaceDefault string = "default"
// NamespaceAll is the default argument to specify on a context when you want to list or filter resources across all namespaces
NamespaceAll string = ""
// NamespaceNone is the argument for a context when there is no namespace.
NamespaceNone string = ""
// NamespaceSystem is the system namespace where we place system components.
NamespaceSystem string = "kube-system"
// NamespacePublic is the namespace where we place public info (ConfigMaps)
NamespacePublic string = "kube-public"

Вы можете найти больше ссылок на kube-system через кодовую базу, вот еще один пример:

// "kube-system" is the default scheduler lock object namespace
SchedulerDefaultLockObjectNamespace string = "kube-system"

И так далее ...

0 голосов
/ 27 июня 2018

проект системы kube, используемый как «Пространство имен для объектов, созданных системой Kubernetes»

https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/#working-with-namespaces

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...