当我使用gcloud sdk在本地shell上运行一个简单命令时。
$ kubectl get pod
我得到这样的错误:
相同的命令在GCP云 shell 上运行良好,并且输出
$ gcloud auth list
符合预期:
我也尝试创建clusterrolebinding,但得到类似的错误。
最佳答案
当您在群集设置中禁用“旧版授权”时,会发生这种情况,因为您使用的客户端证书是旧式身份验证方法。因此,看起来正在发生的事情是客户端身份验证成功,但是授权失败,正如预期的那样。 (错误消息中的“未知用户”令人困惑,这似乎意味着授权系统(而不是身份验证系统)不知道该用户。)
您可以通过以下方式禁用对客户端证书的使用:
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
关于kubernetes - 未知用户 "client"是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49075723/