KubernetesPodOperator не распознает имя_сервиса_сервера - PullRequest
0 голосов
/ 23 февраля 2020

Я создал ресурс serviceAccount с именем my-app-cluster-access. Затем укажите это имя ресурса в аргументе service_account_name в KubernetesPodOperator. Но я продолжаю получать сообщение об ошибке

HTTP response body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"pods is forbidden: User \"system:serviceaccount:my-release-name:default\" cannot create resource \"pods\" in API group \"\" in the namespace \"default\"","reason":"Forbidden","details":{"kind":"pods"},"code":403}

Похоже, что сообщение указывает, что предоставленное значение service_account_name не применяется, так как сообщение все еще имеет текст default. Я проверяю исходный код KubernetesPodOperator и смотрю, как будто там есть сопоставление.

Перед тем, как создать ресурс ServiceAccount, я также получил то же сообщение об ошибке. Нужно ли создавать ресурс ServiceAccount для использования этого оператора? Мне нужно иметь возможность использовать KubernetesPodOperator и до сих пор не работает после добавления ServiceAccount. Я уже установил in_cluster arg на True.

1 Ответ

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

По умолчанию каждое пространство имен имеет учетную запись службы default У учетной записи службы default нет разрешения на создание модулей.

В вашем случае default учетная запись службы из пространства имен my-release-name пытается создать модуль в default пространстве имен.

Вы можете проверить, есть ли у учетной записи службы с именем default из пространства имен my-release-name разрешение на создание модулей в default пространстве имен.

kubectl auth can-i create pods -n default--as=system:serviceaccount:my-release-name:default

Это вернет номер.

Таким образом, вы можете создать роль, подобную приведенной ниже

kubectl create clusterrole pod-creator --verb=create,get,list,watch --resource=pods

и кластеризованное связывание

kubectl create clusterrolebinding pod-creator-clusterrolebinding --clusterrole=pod-creator --serviceaccount=my-release-name:default

Выше должно работать без необходимости создавать новый сервисный аккаунт.

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