Я хочу сделать очень простой пример, чтобы узнать, как использовать авторизацию RBAC в kubernetes.Поэтому я использую пример из документов:
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: dev
name: dev-readpods-role
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: dev-tester-rolebinding
namespace: dev
subjects:
- kind: User
name: Tester
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: dev-readpods-role
apiGroup: rbac.authorization.k8s.io
Роль и ролевая привязка созданы.
Когда я вхожу в Tester и пытаюсь
kubectl get pods -n dev
Iget
Error from server (Forbidden): pods is forbidden: User "<url>:<port>/oidc/endpoint/OP#Tester" cannot list pods in the namespace "dev"
Я прочитал здесь ( Ошибка RBAC в Кубернетесе ), что api-сервер должен быть запущен с --authorization-mode =…, RBAC.Как я могу это проверить?Я где-то читал, что, если я запускаю
kubectl api-versions | findstr rbac
и нахожу записи, RBAC должен быть активирован.Это правда?
Что я делаю не так?Есть хороший способ устранения неполадок?
Спасибо!
PS Я использую kubernetes внутри IBM Cloud Private.