如何使用 kubectl 检查是否启用了 RBAC
how to check whether RBAC is enabled, using kubectl
我正在尝试在据称禁用了 RBAC 的 kubernetes 集群上安装 helm 包。
我收到一个提到 clusterroles.rbac.authorization.k8s.io
的权限错误,如果 RBAC enabled.
,这正是我所期望的
有没有办法检查 kubectl
RBAC 是否真的被禁用了?
我尝试过的:
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
它说 "No resources found",不是错误消息。那么这是否意味着 RBAC 已 启用?
kuebctl describe cluster
不是东西
我知道这可能是 x-y problem 因为我正在安装的 helm 包可能需要启用 RBAC。但是,我仍然想知道如何检查它是否是 enabled/disabled。
我希望有更好的方法,但我使用的是:
$ kubectl cluster-info dump | grep authorization-mode
如果您可以执行它,您应该会看到 RBAC
列在那里,如果您没有执行它的权限,那么,很可能是 RBAC 已启用。
选项#1:
如果您有权访问主节点,请登录并在下方查看
ps -aef | grep -i apiserver
The options should have --authorization-mode=RBAC otherwise RBAC not enabled.
选项#2:
kubectl get clusterroles | grep -i rbac
希望对您有所帮助
Rgds
苏达卡尔
ps -aef | grep -i apiserver
是最简单的找出方法。
您可以通过执行命令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
命令确实 returns rbac.authorization.k8s.io/v1
,但 kubectl get clusterroles
命令没有 return 默认的 system:
前缀角色。
检查 AKS 的最佳方法是检查集群的资源详细信息,例如在 resources.azure.com. If "enableRBAC": true
, your cluster has RBAC enabled. Existing non-RBAC enabled AKS clusters cannot currently be updated 用于 RBAC。因此,如果您想在 AKS 上启用 RBAC,则必须创建一个新集群。
对于 Azure (AKS),我认为 Azure CLI 运行良好。
az resource show -g <resource group name> -n <cluster name> --resource-type Microsoft.ContainerService/ManagedClusters --query properties.enableRBAC
与使用resources.azure.com, but I find it quicker to use the Azure CLI
基本相同
我正在尝试在据称禁用了 RBAC 的 kubernetes 集群上安装 helm 包。
我收到一个提到 clusterroles.rbac.authorization.k8s.io
的权限错误,如果 RBAC enabled.
有没有办法检查 kubectl
RBAC 是否真的被禁用了?
我尝试过的:
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
它说 "No resources found",不是错误消息。那么这是否意味着 RBAC 已 启用?kuebctl describe cluster
不是东西
我知道这可能是 x-y problem 因为我正在安装的 helm 包可能需要启用 RBAC。但是,我仍然想知道如何检查它是否是 enabled/disabled。
我希望有更好的方法,但我使用的是:
$ kubectl cluster-info dump | grep authorization-mode
如果您可以执行它,您应该会看到 RBAC
列在那里,如果您没有执行它的权限,那么,很可能是 RBAC 已启用。
选项#1: 如果您有权访问主节点,请登录并在下方查看
ps -aef | grep -i apiserver
The options should have --authorization-mode=RBAC otherwise RBAC not enabled.
选项#2:
kubectl get clusterroles | grep -i rbac
希望对您有所帮助
Rgds 苏达卡尔
ps -aef | grep -i apiserver
是最简单的找出方法。
您可以通过执行命令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
命令确实 returns rbac.authorization.k8s.io/v1
,但 kubectl get clusterroles
命令没有 return 默认的 system:
前缀角色。
检查 AKS 的最佳方法是检查集群的资源详细信息,例如在 resources.azure.com. If "enableRBAC": true
, your cluster has RBAC enabled. Existing non-RBAC enabled AKS clusters cannot currently be updated 用于 RBAC。因此,如果您想在 AKS 上启用 RBAC,则必须创建一个新集群。
对于 Azure (AKS),我认为 Azure CLI 运行良好。
az resource show -g <resource group name> -n <cluster name> --resource-type Microsoft.ContainerService/ManagedClusters --query properties.enableRBAC
与使用resources.azure.com, but I find it quicker to use the Azure CLI
基本相同