traefik, голые металлы kubernetes: секрет не существует - PullRequest
0 голосов
/ 28 мая 2018

Я использую kubernetes на голом металле (v1.10.2) и последний traefik (v1.6.2) в качестве входа.Я вижу следующую проблему, когда я хочу включить traefik для маршрутизации к службе httpS. Error configuring TLS for ingress default/cheese: secret default/traefik-cert does not exist

Секрет существует!почему он сообщает, что это не так?

На основании комментария: секрет недоступен из учетной записи службы traefik.Но я не понимаю, почему.

Подробности следующие:

kubectl get secret dex-tls -oyaml --as gem-lb-traefik
Error from server (Forbidden): secrets "dex-tls" is forbidden: User "gem-lb-traefik" cannot get secrets in the namespace "default"
$ kubectl describe clusterrolebinding gem-lb-traefik
Name:         gem-lb-traefik
Labels:       <none>
Annotations:  <none>
Role:
  Kind:  ClusterRole
  Name:  gem-lb-traefik
Subjects:
  Kind            Name            Namespace
  ----            ----            ---------
  ServiceAccount  gem-lb-traefik  default
$ kubectl describe clusterrole gem-lb-traefik
Name:         gem-lb-traefik
Labels:       <none>
Annotations:  <none>
PolicyRule:
  Resources             Non-Resource URLs  Resource Names  Verbs
  ---------             -----------------  --------------  -----
  endpoints             []                 []              [get list watch]
  pods                  []                 []              [get list watch]
  secrets               []                 []              [get list watch]
  services              []                 []              [get list watch]
  ingresses.extensions  []                 []              [get list watch]

Я до сих пор не понимаю, почему я получаю ошибку секретной недоступности из учетной записи службы

1 Ответ

0 голосов
/ 29 мая 2018

Прежде всего, в этом случае вы не можете проверить доступ к секрету с помощью ключа --as gem-lb-traefik, потому что он пытается выполнить команду как пользователь gem-lb-traefik, но у вас нет такого пользователя,у вас есть только ServiceAccount с ClusterRole gem-lb-traefik.Более того, использование ключа --as <user> с любым несуществующим пользователем выдает ошибку, аналогичную вашей:

Error from server (Forbidden): secrets "<secretname>" is forbidden: User "<user>" cannot get secrets in the namespace "<namespace>"

Так что, как упомянул @Ignacio Millán, вам нужно проверить свои настройки для Traefik и исправить их согласно официальному документация .Возможно, вы пропустили свой ServiceAccount в описании Traefik DaemonSet.Также вам необходимо проверить, находится ли Traefik DaemonSet в том же пространстве имен, что и ServiceAccount, для которого вы используете ClusterRoleBinding.

...