Рубрики
Uncategorized

Пространства имен Kubernetes Вы никогда не должны пропустить.

Kubernetes поставляется со многими пространствами имен Некоторые из них имеют решающее значение для Kubernetes, чтобы … Tagged с Куберовщиком, облаком, DevOps, Sre.

Kubernetes поставляется со многими пространствами имен Некоторые из них имеют решающее значение для Kubernetes, чтобы правильно функционировать. Объединение в одном из этих пространств имен может повредить систему Kubernetes.

И это:

  • по умолчанию дом бездомных
  • Kube-System Пространство имен для объектов, созданных системой Kubernetes
  • Kube-Public Это пространство имен создается автоматически и читается всеми пользователями (включая те, которые не аутентифицированы). Это пространство имен в основном зарезервировано для использования кластера, в случае, если некоторые ресурсы должны быть видимыми и продуманными публично на протяжении всего кластера. Это полезно для разоблачения любой информации кластера, необходимой для компонентов загрузки. Это в первую очередь управляется самим Кубернетами.
  • kube-узел - аренду Это пространство имен удерживает объекты аренды, связанные с каждым узлом. Узел аренды позволяют Kubelet отправлять сердцебиение, чтобы плоскость управления может обнаружить сбой узла.

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

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

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

Что такое по умолчанию?

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

Что такое Kube-System?

Kube-System Является ли пространство имен для объектов и учетных записей обслуживания с привилегиями высокого уровня в Kubernetes. Утилизация контроллера Kubernetes связана с этим пространством имен, другими словами, у нас будут некоторые проблемы с контроллерами и, возможно, при развертывании новых стручков/развертывания.

Не только это пространство имен также содержит другие важные объекты, такие как Kube-DNS , Kube-Proxy С

Kube-DNS является авторитетным сервером имени для домена кластера (Cluster.local), и он рекурсивно разрешает внешние имена. Короткие имена, которые не полностью квалифицированы, такие как MyService, сначала завершены локальными путями поиска. Подробнее здесь & здесь

Kube-Proxy Управляет пересылкой трафика, адресованного виртуальным IP-адресам (VIP) объектов службы Cluster Kubernetes к соответствующему BackeND POD подробностей здесь & здесь

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

Как насчет общественности Kube?

Kube-Public Содержит один объект Configmap, кластер-информация, который помогает открытию и загрузку безопасности.

Все вышеперечисленные пространства имен, если вы пытались удалить их, сервер ответит с

Error from server (Forbidden): namespaces "kube-public" is forbidden: this namespace may not be deleted

Ожидайте, что счастливчик Kube-Node-Release который был добавлен в Kubernetes V1.14, будет удален то же самое, что и любое нормальное пространство имен.

Что такое релиз Kube-Node?

kube-узел - аренду Это пространство имен удерживает объекты аренды, связанные с каждым узлом. Аренда узлов позволяет Kubelet отправлять сердцебиение, чтобы плоскость управления (контроллер узла) может обнаруживать отказ узла.

Так что случится, если мы удалили kube-узел - аренду ? Обычно Kubernetes создаст еще один с объектом аренды для каждого узла, но иногда удаление пространства имен застряло в прекращение положение дел. Который к тому времени у нас будет аренды узла с устаревшим сердцебиением, которое может сообщить контроллеру узла, что этот узел не достигнут и влияет на общую связь между узлами.

Как исправить удаление пространства имен застрял при заканчивании?

Конечно, вы можете попытаться выяснить, почему пространство имен застряло при заканчивании, но иногда вы не можете здесь, мы идем с сила удалять

1- Создайте файл temp json

 kubectl get namespace  -o json >tmp.json

2- Выполните ниже

$ kubectl proxy
Starting to serve on 127.0.0.1:8001

3- Отредактируйте свой файл TMP.JSON. Удалите значение Kubernetes из поля финализатора и сохраните файл.

4- Составьте команду ниже, чтобы обновить пространство имен

 curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json http://127.0.0.1:8001/api/v1/namespaces//finalize

5- Ваш выход будет выглядеть что-то вроде ниже

{
   "kind": "Namespace",
   "apiVersion": "v1",
   "metadata": {
     "name": "",
     "selfLink": "/api/v1/namespaces//finalize",
     "uid": "b50c9ea4-ec2b-11e8-a0be-fa163eeb47a5",
     "resourceVersion": "1602981",
     "creationTimestamp": "2021-10-18T18:48:30Z",
     "deletionTimestamp": "2021-10-18T18:59:36Z"
   },
   "spec": {

   },
   "status": {
     "phase": "Terminating"
   }
}

Оригинал: «https://dev.to/amrh434/kubernetes-namespaces-you-should-never-miss-with-1idh»