【问题标题】:what does Unknown user "client" mean?未知用户“客户”是什么意思?
【发布时间】:2018-08-11 01:23:15
【问题描述】:

当我使用 gcloud sdk 在本地 shell 上运行一个简单命令时。

$ kubectl get pod

我收到这样的错误:

来自服务器的错误(禁止):pod 被禁止:用户“client”无法在集群范围内列出 pod:未知用户“client”

相同的命令在 GCP 云 shell 上运行良好,输出

$ gcloud auth list

如预期:

认证帐户
ACTIVE ACCOUNT
* foo@bar.com

我也尝试创建集群角色绑定,但得到类似的错误。

【问题讨论】:

    标签: kubernetes google-kubernetes-engine


    【解决方案1】:

    当您在集群设置中禁用旧版授权时会发生这种情况,因为您使用的客户端证书是旧版身份验证方法。所以看起来正在发生的事情是客户端身份验证成功但授权失败,正如预期的那样。 (错误消息中的“未知用户”令人困惑,似乎意味着授权系统不知道该用户,而不是身份验证系统。)

    您可以通过

    禁用客户端证书的使用
    gcloud config unset container/use_client_certificate
    

    然后使用

    重新生成您的 kubectl 配置
    gcloud container clusters get-credentials my-cluster
    

    或者您可以简单地在 Google Cloud Console 的集群设置中重新启用旧版授权,或使用以下命令:

    gcloud container clusters update [CLUSTER_NAME] --enable-legacy-authorization
    

    【讨论】:

    • 这至少帮助我解决了问题。如果需要,您还可以编辑以在 my-cluster 之后添加 --zone
    • 这解决了我的问题。谢谢!
    【解决方案2】:

    我知道这个问题现在已经解决了,但是我想补充一些关于为什么会发生这个问题的信息,因为它可能对遇到类似问题的任何人有用。

    Kubernetes Engine 用户可以使用 Google OAuth2 访问令牌对 Kubernetes API 进行身份验证,这意味着当用户创建新集群时,Kubernetes Engine 会配置 kubectl 以对用户进行集群身份验证。

    还可以使用传统方法对集群进行身份验证,包括使用集群证书和/或用户名和密码。这是在gcloud config 中定义的。

    gcloud 的配置(例如 Cloud Shell)可能与 gcloud 在其他地方的安装不同,例如在家庭工作站上。

    :

    来自服务器的错误(禁止):Pod 被禁止:用户“客户端”不能 列出集群范围内的 pod:未知用户“client”

    错误表明 gcloud config set container/use_client_certificate 设置为 True 即 gcloud 期望客户端集群证书对集群进行身份验证(这是错误消息中的“客户端”所指的内容)。

    正如@Yanwei 发现的那样,通过在 glcoud 配置中发出以下命令来取消设置 container/use_client_certificate 将不再需要旧证书或凭据并防止出现错误消息:

    gcloud config unset container/use_client_certificate
    

    如果您在家庭工作站或其他地方使用旧版本的 gcloud,则更有可能出现此类问题。

    有一些关于这个here的信息。

    【讨论】:

      【解决方案3】:

      发现 gcloud 配置存在一些问题。这个命令解决了它:

      gcloud config unset container/use_client_certificate
      

      【讨论】:

        【解决方案4】:

        除了设置

        gcloud config unset container/use_client_certificate

        还要确保您没有将此环境变量设置为 True

        CLOUDSDK_CONTAINER_USE_CLIENT_CERTIFICATE

        【讨论】:

          猜你喜欢
          • 2010-12-22
          • 1970-01-01
          • 2013-05-27
          • 1970-01-01
          • 2018-05-10
          • 2012-11-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多