【问题标题】:Inadvertently deleted admin clusterrole and can't access cluster resources无意中删除了管理员集群角色,无法访问集群资源
【发布时间】:2022-01-27 21:20:22
【问题描述】:

我通过 kubectl 删除了我的集群管理员角色:

kubectl delete clusterrole cluster-admin

不确定我的预期,但现在我无法从我的帐户访问集群。任何使用 kubectl 获取或更改资源的尝试都会返回 403,禁止访问。 我有什么办法可以在不破坏集群并创建新集群的情况下恢复此更改?我在 Digital Ocean 上有一个托管集群。

【问题讨论】:

标签: kubernetes


【解决方案1】:

不确定我的预期,但现在我无法从我的帐户访问集群。

如果kubectl 命令都不起作用,很遗憾,您将无法创建新的集群角色。问题是如果没有管理员角色,您将无法做任何事情。您可以尝试通过 API 直接创建 cluster-admin 角色(不使用 kubectl),但如果这没有帮助,您必须重新创建集群。

【讨论】:

  • 只是为了分享,kubernetes.io/docs/reference/access-authn-authz/rbac/…,现在确定他何时删除了该集群角色,它是否有注释。如果有重新启动可能会有所帮助。 Auto-reconciliation is enabled by default if the RBAC authorizer is active.:D
  • 感谢您的建议。我自己什么也做不了,但由于这是一个托管集群,Digital Ocean 支持团队能够“回收主人”,最终重新创建角色,从而将 kubectl 能力归还给我。
【解决方案2】:

尝试应用此 YAML 来创建新的集群角色

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  annotations:
    rbac.authorization.kubernetes.io/autoupdate: "true"
  labels:
    kubernetes.io/bootstrapping: rbac-defaults
  name: cluster-admin
rules:
- apiGroups:
  - '*'
  resources:
  - '*'
  verbs:
  - '*'
- nonResourceURLs:
  - '*'
  verbs:
  - '*'

应用 YAML 文件更改

kubectl apply -f <filename>.yaml

【讨论】:

  • 感谢您的建议,不幸的是,此命令仍然返回 403。
猜你喜欢
  • 2020-03-17
  • 2021-04-07
  • 1970-01-01
  • 1970-01-01
  • 2017-04-25
  • 2023-03-09
  • 1970-01-01
  • 2020-05-04
  • 2022-01-04
相关资源
最近更新 更多