GKE traefik не может создать разрешения для rbac - PullRequest
0 голосов
/ 01 сентября 2018

Я пытаюсь установить traefik в качестве входного контроллера на GKE (google cloud kubernetes engine) и при попытке:

kubectl apply -f https://raw.githubusercontent.com/containous/traefik/master/examples/k8s/traefik-rbac.yaml

У меня есть эта ошибка:

Ошибка с сервера (запрещено): ошибка при создании «https://raw.githubusercontent.com/containous/traefik/master/examples/k8s/traefik-rbac.yaml": clusterroles.rbac.authorization.k8s.io "traefik-ingress-controller" является запрещено: попытка предоставить дополнительные привилегии: [PolicyRule {APIGroups: [""], ресурсы: ["services"], глаголы: ["get"]} PolicyRule {APIGroups: [""], ресурсы: ["services"], глаголы: ["list"]} PolicyRule {APIGroups: [""], ресурсы: ["services"], глаголы: ["watch"]} PolicyRule {APIGroups: [""], ресурсы: ["конечные точки"], глаголы: ["get"]} PolicyRule {APIGroups: [""], ресурсы: ["конечные точки"], глаголы: ["list"]} PolicyRule {APIGroups: [""], ресурсы: ["конечные точки"], глаголы: ["watch"]} PolicyRule {APIGroups: [""], ресурсы: ["секреты"], глаголы: ["get"]} PolicyRule {APIGroups: [""], ресурсы: ["секреты"], глаголы: ["список"]} PolicyRule {APIGroups: [""], ресурсы: ["секреты"], глаголы: ["смотреть"]} PolicyRule {APIGroups: ["extensions"], ресурсы: ["ingresses"], Глаголы: ["get"]} PolicyRule {APIGroups: ["extensions"], Ресурсы: ["ingresses"], глаголы: ["list"]} PolicyRule {APIGroups: ["extensions"], ресурсы: ["ingresses"], Глаголы: ["watch"]}] user=&ndomIzoPi4a@gmail.com [система: аутентифицирована] карта [user-assertion.cloud.google.com: [ADKE0IBz9kwSuZRZkfbLil8iC / ijcmJJmuys2DvDGxoxQ5yP6Pdq1IQs3JRwDmd / lWm2vGdMXGB4h1QKiwx + 3uV2ciTb / oQNtkthBvONnVp4fJGOSW1S + 8O8dqvoUNRLNeB5gADNn1TKEYoB + JvRkjrkTOxtIh7rPugLaP5Hp7thWft9xwZqF9U4fgYHnPjCdRgvMrDvGIK8z7ONljYuStpWdJDu7LrPpT0L]]} ownerrules = [PolicyRule {APIGroups: [ "authorization.k8s.io"], Ресурсы: ["selfsubjectaccessreviews" "selfsubjectrulesreviews"], Глаголы: ["create"]} PolicyRule {NonResourceURLs: ["/ api" "/ api / " "/ apis" "/ apis / " "/ healthz" "/ openapi" "/ openapi / " "/swagger-2.0.0.pb-v1" "/swagger.json" "/ swaggerapi" "/ swaggerapi / " "/ version" "/ version /"], Глаголы: ["get"]}] ruleResolutionErrors = []

Проблема только в этой части, другая успешно создана:

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: traefik-ingress-controller
rules:
  - apiGroups:
      - ""
    resources:
      - services
      - endpoints
      - secrets
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - extensions
    resources:
      - ingresses
    verbs:
      - get
      - list
      - watch

На основе документов (https://cloud.google.com/kubernetes-engine/docs/how-to/role-based-access-control) Я пытался выполнить эту команду, но все равно получаю ту же ошибку

kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin --user=MY_EMAIL_THAT_I_LOGIN_INTO_GCP

Кто-нибудь когда-нибудь мог это исправить? или это просто не работает?

Я пытаюсь создать кластер kubernetes без loadBalancer, чтобы быть дешевым на моей локальной машине (minikube), у меня нет таких проблем.

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Основная проблема в том, что у вашего текущего пользователя недостаточно прав для этого. Для создания необходимой привязки:

kubectl create clusterrolebinding cluster-admin-binding \                                               
    --clusterrole=cluster-admin \
    --user=$(gcloud config get-value core/account)

Спасибо istio за идею.

0 голосов
/ 01 сентября 2018

Так что для всех, кто пытается установить traefik на GKE, и вы застряли с этим сообщением об ошибке, просто сделайте это сначала https://stackoverflow.com/a/46316672/1747159

# Get password value
$ gcloud container clusters describe CUSTER_NAME --zone ZONE_NAME | grep password

# Pass username and password parameters
$ kubectl apply -f https://raw.githubusercontent.com/containous/traefik/master/examples/k8s/traefik-rbac.yaml --username=admin --password=PASSWORD

Спасибо Никола Бен за помощь в разгадке

...