如何使用kubectl检查RBAC是否已启用

fal*_*ets 40 rbac kubernetes kubectl

我正在尝试在kubernetes集群上安装一个helm软件包,该集群据称已禁用RBAC.我收到了一个权限错误提示clusterroles.rbac.authorization.k8s.io,如果启用了 RBAC,这就是我所期望的.

有没有办法检查kubectlRBAC是否真的被禁用?

我尝试过的:

  • kubectl describe nodes --all-namespaces | grep -i rbac :什么都没有出现
  • kubectl describe rbac --all-namespaces | grep -i rbac :什么都没有出现
  • kubectl config get-contexts | grep -i rbac :什么都没有出现
  • k get clusterroles它说"找不到资源",而不是错误信息.这是否意味着,RBAC 启用?
  • kuebctl describe cluster 不是一件事

我知道这可能是xy问题,因为我正在安装的helm软件包可能需要启用RBAC.但是,我仍然想知道如何检查它是否启用/禁用.

dan*_*cic 57

您可以通过执行命令来检查kubectl api-versions; 如果启用了RBAC,您应该看到API版本.rbac.authorization.k8s.io/v1.

在AKS中,最好的方法是在resources.azure.com上检查集群的资源详细信息.如果可以发现"enableRBAC": true,则群集已启用RBAC.请注意,现有的非RBAC启用的AKS群集目前无法更新以供RBAC使用.(感谢@DennisAmeling的澄清)

  • 对于Azure(AKS)来说,这有点棘手.虽然`kubectl api-versions`确实返回`rbac.authorization.k8s.io/v1`,但`kubectl get clusterroles`不会返回默认的`system:`前缀角色.检查AKS的最佳方法是检查群集的资源详细信息,例如https://resources.azure.com.如果"enableRBAC":true,则表示您的群集已启用RBAC.现有的非RBAC启用的AKS集群[当前无法更新](https://docs.microsoft.com/en-us/azure/aks/aad-integration)用于RBAC使用.因此,如果要在AKS上启用RBAC,则必须创建新群集. (5认同)
  • `kubectl api-versions怎么样?grep rbac`? (4认同)
  • Azure AKS 的另一个选项是:“az aks list”并查找“enableRbac”:true 或 false (4认同)

Mic*_*las 13

我希望有更好的方法,但我使用的是:

$ kubectl cluster-info dump | grep authorization-mode
Run Code Online (Sandbox Code Playgroud)

如果你可以执行它,你应该看到RBAC在那里列出或不在那里,如果你没有权限这样做,那么很可能RBAC已启用.

  • [降级我的 kubectl](https://github.com/kubernetes/kubernetes/issues/65221) 之后,我现在可以运行 `cluster-info dump`。我在一个肯定启用了 RBAC 的集群上尝试了这个,但没有输出。 (3认同)

Den*_*ing 7

对于Azure(AKS)来说,这有点棘手.虽然kubectl api-versions命令确实返回rbac.authorization.k8s.io/v1,该kubectl get clusterroles命令不返回默认system:前缀角色.

检查AKS的最佳方法是检查群集的资源详细信息,例如在resources.azure.com上.如果"enableRBAC": true,您的群集已启用RBAC.现有的非RBAC启用的AKS群集当前无法更新以供RBAC使用.因此,如果要在AKS上启用RBAC,则必须创建新群集.


Ola*_*ybø 5

对于Azure(AKS),我认为Azure CLI可以很好地工作。

az resource show -g <resource group name> -n <cluster name> --resource-type Microsoft.ContainerService/ManagedClusters --query properties.enableRBAC
Run Code Online (Sandbox Code Playgroud)

与使用resources.azure.com基本相同,但是我发现使用Azure CLI更快