Запрещенная ошибка пользователя во всех командах руля. Как предоставить пользователю доступ к Helm? - PullRequest
0 голосов
/ 31 января 2020

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

Запуск примерно так: kubectl create serviceaccount --namespace kube-system tiller приводит к этой ошибке:

Error from server (Forbidden): serviceaccounts is forbidden: User "{my-user}" cannot create resource "serviceaccounts" in API group "" in the namespace "kube-system"

Запуск этого : kubectl get serviceaccount [-n kube-system] приводит к этой ошибке:

Error from server (Forbidden): serviceaccounts "[-n" is forbidden: User "cn188854" cannot get resource "serviceaccounts" in API group "" in the namespace "default" Error from server (Forbidden): serviceaccounts "kube-system]" is forbidden: User "cn188854" cannot get resource "serviceaccounts" in API group "" in the namespace "default"

Запуск этого: helm list приводит к этой ошибке:

Error: pods is forbidden: User "{my-user}" cannot list resource "pods" in API group "" in the namespace "kube-system"

Я предполагаю, что мой пользователь не имеет доступа к пространству имен системы kube, но я не понимаю, почему нет, и я не знаю, как дать себе доступ к этому пространству имен. Я рассмотрел несколько других постов и вопросов (таких как этот на stackoverflow и этот на github ). Но я не могу попробовать ни одно из их решений, потому что я всегда получаю запрещенного пользователя по команде helm.

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

1 Ответ

1 голос
/ 04 февраля 2020

После долгих исследований и опросов я обнаружил, что мой пользователь буквально не имеет доступа к стандартному или kube-system namespaces в кластере. Я должен указать кластер, в котором у меня есть доступ. Доступ зависит от того, как настроен кластер, который вы используете. (Моя группа кластеров была настроена таким образом для безопасности.)

Так что, если кто-то еще испытывает эту проблему, проверьте, какой кластер вы используете и какие у вас есть разрешения. Если вам нужно указать namespace, как я, вы можете добавить этот аргумент в вашу команду: -n={name-of-namespace-you're-using}

Например, я не могу запустить kubectl get pods, потому что у меня нет доступа до default namespace. Но если я укажу namespace, к которому у меня есть доступ, например: kubectl get pods -n={name-of-namespace}, тогда я смогу увидеть свои модули.

Иногда вам также может понадобиться указать tiller, обычно с помощью добавления аргумента, подобного следующему: --tiller-namespace={name-of-tiller} Обязательно проверьте опции для команд на helm docs или на kubectl do c, чтобы вы знали какие аргументы использовать.

...