J'essaie d'installer un paquetage helm sur un cluster kubernetes sur lequel RBAC aurait été désactivé. J'obtiens une erreur d'autorisation mentionnant clusterroles.rbac.authorization.k8s.io
, ce à quoi je m'attendrais si RBAC était activé .
Existe-t-il un moyen de vérifier avec kubectl
si RBAC est vraiment désactivé?
Ce que j'ai essayé
kubectl describe nodes --all-namespaces | grep -i rbac
: rien ne se présentekubectl describe rbac --all-namespaces | grep -i rbac
: rien ne se présentekubectl config get-contexts | grep -i rbac
: rien ne se présentek get clusterroles
il indique "Aucune ressource trouvée", pas un message d'erreur. Cela signifie-t-il que RBAC est activé ?kuebctl describe cluster
n'est pas une choseJe suis conscient que c'est peut-être le problème x-y car il est possible que le paquetage de barre que j'installe s'attend à ce que RBAC soit activé. Mais j'aimerais quand même savoir comment vérifier si cela est activé ou non.
Vous pouvez le vérifier en exécutant la commande kubectl api-versions
; Si RBAC est activé, vous devriez voir la version de l'API .rbac.authorization.k8s.io/v1
.
Dans AKS, le meilleur moyen consiste à vérifier les détails des ressources du cluster à l’adresse resources.Azure.com . Si vous pouvez repérer "enableRBAC": true
, votre cluster est activé par RBAC. Veuillez noter que les clusters AKS non compatibles RBAC existants ne peuvent actuellement pas être mis à jour pour une utilisation RBAC. (merci @DennisAmeling pour la clarification)
Je souhaite qu'il y ait un meilleur moyen mais ce que j'utilise est:
$ kubectl cluster-info dump | grep authorization-mode
Si vous pouvez l'exécuter, vous devriez soit voir la liste RBAC
répertoriée ou non, et si vous n'avez pas les autorisations pour le faire, il est fort probable que le contrôle d'accès basé sur les rôles soit activé.
Pour Azure (AKS), c'est un peu plus compliqué. Alors que la commande kubectl api-versions
renvoie bien rbac.authorization.k8s.io/v1
, la commande kubectl get clusterroles
ne renvoie pas les rôles par défaut préfixés system:
.
Le meilleur moyen de vérifier la présence d’AKS est de vérifier les détails des ressources du cluster, par exemple. à resources.Azure.com . Si "enableRBAC": true
, votre cluster est activé par RBAC. Clusters AKS existants non activés par RBAC ne peut pas être mis à jour actuellement pour utilisation par RBAC. Donc, si vous voulez activer RBAC sur AKS, vous devrez créer un nouveau cluster.
Option n ° 1: Si vous avez accès au noeud principal, connectez-vous et vérifiez ci-dessous
ps -aef | grep -i apiserver
The options should have --authorization-mode=RBAC otherwise RBAC not enabled.
Option 2:
kubectl get clusterroles | grep -i rbac
J'espère que cela t'aides
Rgds Sudhakar
Pour Azure (AKS), je pense que Azure CLI fonctionne bien.
az resource show -g <resource group name> -n <cluster name> --resource-type Microsoft.ContainerService/ManagedClusters --query properties.enableRBAC
C'est fondamentalement la même chose que d'utiliser resources.Azure.com , mais je trouve qu'il est plus rapide d'utiliser le Azure CLI
ps -aef | grep -i apiserver
est le moyen le plus simple de le savoir.