Ошибка сервера (запрещено): модули запрещены: пользователь не может перечислить ресурсные «модули» в группе API в области кластера.

Мой частный кластер AKS доступен только привилегированному пользователю, использующему kubectl на узле перехода. Но для пользователя без полномочий root выдается следующее сообщение об ошибке:

someuser@jump-vm$ kubectl get pods -A
Error from server (Forbidden): pods is forbidden: User "XX-XX-XX-XX-XX" cannot list resource "XX" in API group " " at the cluster scope

Как решить эту ошибку?

Как вы получили kubeconfig?

4c74356b41 14.02.2023 13:27

Не знаю, как это было создано в прошлом, но недавно мы установили kubelogin в /usr/bin. Никаких kubeconfig не делал.

Rajesh Swarnkar 14.02.2023 13:31

Я думаю, вам не хватает шагов az login и kubelogin convert для пользователя.

4c74356b41 14.02.2023 13:43

@ 4c74356b41 Я удалил config и cache из $HOME/.kube/*, а позже повторно инициализировал конфигурацию после az login. И это сработало.

Rajesh Swarnkar 16.02.2023 07:23
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
0
4
54
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

В этом случае решение состояло в том, чтобы удалить старую конфигурацию из $HOME/.kube/ и повторно инициализировать ее после az login с данным пользователем.

Похоже, что виртуальная машина Azure из частного кластера AKS, к которой осуществлялся доступ, была настроена на автоматический перезапуск, что вызвало некоторые проблемы с kubectl или kubelogin.

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

root@jump-vm# cd ~ && cd .kube/
root@jump-vm# rm -r cache && rm config 
root@jump-vm# az login --tenant <tenant-id>
root@jump-vm# az account set --subscription <subscription-id>
root@jump-vm# az aks get-credentials --resource-group <resource-group-name> --name <aks-clutser-name>
root@jump-vm# kubelogin convert-kubeconfig -l azurecli

someuser@jump-vm$ cd ~ && cd .kube/
someuser@jump-vm$ rm -r cache && rm config 
someuser@jump-vm$ az login --tenant <tenant-id>
someuser@jump-vm$ az account set --subscription <subscription-id>
someuser@jump-vm$ az aks get-credentials --resource-group <resource-group-name> --name <aks-clutser-name>
someuser@jump-vm$ kubelogin convert-kubeconfig -l azurecli

Другие вопросы по теме