Получение ошибки с сервера kubenetes при входе в систему - ClusterRoleBinding - PullRequest
1 голос
/ 05 апреля 2020

Я использую Keycloak в качестве провайдера идентификации для kubernetes. Я использую kubelogin для получения токена. Маркер, кажется, работает, но я получаю ошибку ниже. Я думаю, что есть некоторая проблема в ClusterRoleBinding, которая не позволяет ему работать.

  • В чем ошибка
Error from server (Forbidden): pods is forbidden: User "test" cannot list resource "pods" in API group "" in the namespace "default"

Дополнительная информация

  • Api Manifest
    - --oidc-issuer-url=https://test1.example.com/auth/realms/kubernetes
    - --oidc-username-claim=preferred_username
    - --oidc-username-prefix=-
    - --oidc-groups-claim=groups
    - --oidc-client-id=kubernetes
    - --oidc-ca-file=/etc/ssl/certs/ca.crt
  • Роль кластера и привязка роли кластера
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: cluster-admin
rules:
- apiGroups: ["*"]
  resources: ["*"]
  verbs: ["*"]

---

kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: admin-rolebinding
subjects:
- kind: User
  name: //test1.example.com.com/auth/realms/kubernetes#23fd6g03-e03e-450e-8b5d-07b19007c443
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io

Что-то мне не хватает, чтобы заставить это работать?

1 Ответ

1 голос
/ 07 апреля 2020

После много копания я смог найти проблему. Вместо того, чтобы добавлять URL-адрес ключа пользователя, мы должны использовать само имя пользователя. Вот пример yaml

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: cluster-admin
rules:
- apiGroups: ["*"]
  resources: ["*"]
  verbs: ["*"]

---

kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: admin-rolebinding
subjects:
- kind: User
  name: test
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io
...