【问题标题】:Can't deploy to GKE by a specific linux user无法由特定的 linux 用户部署到 GKE
【发布时间】:2021-03-01 18:39:16
【问题描述】:

我们在 GCE 上有一个 Jenkins 虚拟机,用于处理部署,包括我们对 GKE 所做的部署。我们试图部署一个我们有一段时间没有接触过的项目。调用时部署失败

kubectl set image deployment my-deployment my-deployment=gcr.io/my-project/my-project:version-tag

收到此错误:

Error from server (Forbidden): deployments.extensions "my-deployment" is forbidden: User "client" cannot get resource "deployments" in API group "extensions" in the namespace "default"

奇怪的是,如果我登录机器,使用我的 Linux 用户 + 我的 gcloud 用户,我可以正常部署。但是,当使用 su - jenkins 切换到 jenkins 用户,然后使用我的用户授权 gcloud 时,我得到了与我们的部署帐户相同的错误。

请告知如何解决。

【问题讨论】:

  • 您很可能会将 ~/.kube/config 从工作用户的主目录复制到它不起作用的用户。
  • @RamanSailopal 将配置文件从它适用的用户复制到它不适用的用户?
  • 从/home/Linux用户/.kube/config复制到/home/jenkins/.kube/config
  • 那没用 :(

标签: linux google-compute-engine google-kubernetes-engine gcloud kubectl


【解决方案1】:

这似乎与集群 RBAC 配置有关。您是否启用了RBAC fo Google Groups?在这种情况下,您应该按照上述文档中的说明操作或禁用它。

否则,SS Raman Sailopal 说,你可以试试这个:

  • 与您的普通用户一起运行 kubectl config get-contexts 以检索您当前的上下文
  • /home/Linux user/.kube/config复制到/home/jenkins/.kube/config
  • 将用户更改为 jenkins 并通过运行 kubectl config get-contextskubectl config set-context ... 确保使用相同的上下文
  • 尝试您的权利:
  # Check to see if I can create deployments in any namespace
  kubectl auth can-i create deployments

  # Check to see if I can list deployments in my current namespace
  kubectl auth can-i list deployments.extensions

【讨论】:

    猜你喜欢
    • 2020-03-25
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 2021-02-25
    • 1970-01-01
    • 2022-01-11
    • 2019-11-24
    • 2021-07-02
    相关资源
    最近更新 更多