【问题标题】:Error from server (Forbidden): Forbidden (user=system:anonymous, verb=get,来自服务器的错误(禁止):禁止(用户=系统:匿名,动词=获取,
【发布时间】:2019-06-02 19:35:50
【问题描述】:

[xueke@master-01 admin]$ kubectl logs nginx-deployment-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

我在这里指定了管理员用户 需要怎么修改?

【问题讨论】:

  • 添加更多关于您的问题以及您想要做什么的信息。

标签: kubernetes


【解决方案1】:

上述错误意味着您的 apiserver 没有凭据 (kubelet cert and key) 来验证 kubelet 的 log/exec 命令,因此没有 Forbidden 错误消息。

您需要向您的 apiserver 提供 --kubelet-client-certificate=<path_to_cert>--kubelet-client-key=<path_to_key>,这样 apiserver 会使用证书和密钥对来验证 kubelet。

欲了解更多信息,请查看:

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

【讨论】:

    【解决方案2】:

    这是一个 RBAC 错误。用户无权查看日志。如果您有一个具有集群管理员权限的用户,您可以使用

    修复此错误
    kubectl create clusterrolebinding the-boss --user system:anonymous --clusterrole cluster-admin
    

    注意:给匿名用户集群管理员角色不是一个好主意。不过会解决这个问题。

    【讨论】:

    • RBAC 不应用于为匿名用户提供集群管理员访问权限。这可能是灾难性的。有关更多信息,请参阅以下问题github.com/kubernetes/kubernetes/issues/55872
    • 这是我在 stackoverflow 上见过的最糟糕的“解决方案”。人们有时只是漫不经心地复制命令,这很糟糕。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    • 2021-05-28
    • 2012-09-02
    • 1970-01-01
    • 2021-02-28
    相关资源
    最近更新 更多