Проблемы после запуска сброса kubeadm - PullRequest
2 голосов
/ 07 апреля 2020

У меня были проблемы с kubeadm init, и поэтому я запустил kubeadm reset, а затем kubeadm init, и проблема исчезла, но теперь у меня есть другая проблема, и это то, что когда я запускаю kubectl get all, я получите следующий ответ:

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3h6m
Error from server (Forbidden): replicationcontrollers is forbidden: User "system:node:abc-server.localdomain" cannot list resource "replicationcontrollers" in API group "" in the namespace "default"
Error from server (Forbidden): daemonsets.apps is forbidden: User "system:node:abc-server.localdomain" cannot list resource "daemonsets" in API group "apps" in the namespace "default"
Error from server (Forbidden): deployments.apps is forbidden: User "system:node:abc-server.localdomain" cannot list resource "deployments" in API group "apps" in the namespace "default"
Error from server (Forbidden): replicasets.apps is forbidden: User "system:node:abc-server.localdomain" cannot list resource "replicasets" in API group "apps" in the namespace "default"
Error from server (Forbidden): statefulsets.apps is forbidden: User "system:node:abc-server.localdomain" cannot list resource "statefulsets" in API group "apps" in the namespace "default"
Error from server (Forbidden): horizontalpodautoscalers.autoscaling is forbidden: User "system:node:abc-server.localdomain" cannot list resource "horizontalpodautoscalers" in API group "autoscaling" in the namespace "default"
Error from server (Forbidden): jobs.batch is forbidden: User "system:node:abc-server.localdomain" cannot list resource "jobs" in API group "batch" in the namespace "default"
Error from server (Forbidden): cronjobs.batch is forbidden: User "system:node:abc-server.localdomain" cannot list resource "cronjobs" in API group "batch" in the namespace "default"

Я исчерпал свои возможности поиска в Google с помощью моего ограниченного словаря kubernetes, поэтому надеюсь, что кто-то здесь может помочь мне со следующим:

  1. что происходит? ! (это проблема авторизации RBA C?)
  2. как я могу решить эту проблему? так как это среда разработки, которая определенно потребует некоторой очистки, я не возражаю против быстрого и грязного способа, просто чтобы я мог продолжить с задачей под рукой (то есть просто запустить и запустить снова)

Ответы [ 2 ]

1 голос
/ 07 апреля 2020

Как отметил @Software Engineer в своем комментарии, github проблема с исправлением:

Пользователь neolit123 на github разместил это решение:

получение ошибки разрешения во время настройки сети модуля pod означает, что вы пытаетесь kubectl apply манифестировать файлы, используя файл kubeconfig, который не имеет правильных разрешений.

убедитесь, что ваш /etc/kubernetes/admin.conf генерируется kubeadm и содержит kubernetes-admin в качестве пользователя.

root@master:~# kubectl auth can-i create deploy

какой kubeconfig использует эта команда?
try

root@master:~# KUBECONFIG=/etc/kubernetes/admin.conf kubectl auth can-i create deploy

Я хотел проверить Примечания к выпуску, но информации мало, или я не знаю, как ее интерпретировать. У кого-нибудь есть какая-либо информация о том, что это за изменения, или что я делаю неправильно?

AFAIK, такого изменения нет между 1.14.4 и .3.

0 голосов
/ 07 апреля 2020

Отвечает в меру своих возможностей без воспроизведения ошибки:

Да, это похоже на проблему RBA C. Вы запустили:

kubectl get all

Как вы, возможно, знаете, kubectl обрабатывает и находит сервер API Kubernetes (также известный как kube-apiserver в кластере). Поскольку сервер API возвращает 403 (запрещено), мы можем продолжить, зная, что это проблема авторизация .

То есть мы можем запрашивать ресурсы у kube-apiserver (аутентификация), но у нас нет привилегий для: Пользователь "system: node: ab c -server.localdomain" не имеет разрешение на выполнение HTTP-запроса GET к таким и таким объектам. Более того, вполне вероятно, что у этого пользователя нет прав на выполнение HTTP-запросов (CRUD - Create Read Update Delete) для любых объектов в кластере Kubernetes.

В терминах RBA C существует роль, которая определяет разрешения, и привязка к роли, которая связывает пользователя с этой ролью для получения разрешений. Например, кластер имеет роль, равную Unix / Linux root с точки зрения разрешений, которая связана с kube-apiserver. Очевидно, что мы не будем использовать эту роль, но в целом мы можем использовать эти разрешения для создания ролей с разрешениями CRUD.

Таким образом, при загрузке плоскости управления system: node: ab c -server.localdomain должен был быть связан с ролью, которая дает разрешения на выполнение запроса чтения для объектов в пространстве имен по умолчанию. Но я предполагаю, что этого не произошло.

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

...