当我使用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/

10-16 09:25