Мой частный кластер 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
Как решить эту ошибку?
Не знаю, как это было создано в прошлом, но недавно мы установили kubelogin в /usr/bin. Никаких kubeconfig не делал.
Я думаю, вам не хватает шагов az login и kubelogin convert для пользователя.
@ 4c74356b41 Я удалил config и cache из $HOME/.kube/*, а позже повторно инициализировал конфигурацию после az login. И это сработало.
В этом случае решение состояло в том, чтобы удалить старую конфигурацию из $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
Как вы получили kubeconfig?