Ошибка с сервера (Запрещено): Запрещено (пользователь = система: анонимный, глагол = получить,

[xueke@master-01 admin]$ kubectl logs nginx-deploy-76bf4969df-999x8 Ошибка сервера (запрещено): запрещено (пользователь = система: аноним, глагол = получить, ресурс = узлы, субресурс = прокси) ( pods/log nginx) -deployment-76bf4969df-999x8)

[xueke@master-01 admin]$ kubectl config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://192.168.0.101:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: admin
  name: kubernetes
current-context: kubernetes
kind: Config
preferences: {}
users:
- name: admin
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED

Я указал здесь пользователя с правами администратора. Как мне его изменить?

3 ответа

Вышеуказанная ошибка означает, что ваш apiserver не имеет учетных данных (kubelet cert and key) аутентифицировать команды log/exec и, следовательно, Forbidden сообщение об ошибке.

Вы должны предоставить --kubelet-client-certificate=<path_to_cert> а также --kubelet-client-key=<path_to_key> для вашего apiserver, таким образом apiserver аутентифицирует kubelet с помощью сертификата и пары ключей.

Для получения дополнительной информации, посмотрите на:

https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet-authentication-authorization/

В нашем случае ошибка возникла из-за понижения версии служб Azure из-за ошибки в разрешении DNS, появившейся в Ubuntu 18.04. См. статус Azure и техническую ветку . Я выполнил эту команду, чтобы установить резервный DNS-адрес в узлах:

      az vmss list-instances -g <resourcegroup> -n vmss --query "[].id" --output tsv \
  | az vmss run-command invoke --scripts "echo FallbackDNS=168.63.129.16 >> /etc/systemd/resolved.conf; systemctl restart systemd-resolved.service" --command-id RunShellScript --ids @-

Это ошибка RBAC. У пользователя не было прав на просмотр логов. Если у вас есть пользователь с правами кластера-администратора, вы можете исправить эту ошибку с помощью

kubectl create clusterrolebinding the-boss --user system:anonymous --clusterrole cluster-admin

Примечание. Не рекомендуется назначать роль администратора-анонимного пользователя. Будет исправить проблему, хотя.

Другие вопросы по тегам