#kubernetes #roles #service-accounts
#kubernetes #роли #сервисные учетные записи
Вопрос:
Я не могу понять, что не так с моей привязкой к роли. Я продолжаю получать эту ошибку при попытке получить показатели для моего модуля.
"pods.metrics.k8s.io "my-pod-name" is forbidden: User "system:serviceaccount:default:default" cannot get resource "pods" in API group "metrics.k8s.io" in the namespace "default""
Вот файл yaml роли кластера
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: ["", "metrics.k8s.io"] # "" indicates the core API group
resources: ["pods"]
verbs: ["get", "watch", "list"]
Затем я выполнил эту команду
kubectl create clusterrolebinding pod-reader
--clusterrole=pod-reader
--serviceaccount=default:default
Комментарии:
1. Ваше
ClusterRole
имяpod-reader
, но в вашей команде вы передаете--clusterrole
флаг с именемservice-reader
. Можете ли вы проверить это несоответствие?2. Спасибо! я исправил это, но все еще не работает
3. Застрял в этой же проблеме. Хотелось бы, чтобы на это были ответы 🙂
Ответ №1:
ClusterRole и ClusterRoleBinding — это ресурсы, не связанные с пространством имен. Итак, удалите строку пространства имен из вашего файла YAML.
В качестве альтернативы используйте Role amp; RoleBinding, если вы хотите ограничить пространство имен.