0
votes

Quel rôle et quel rôle de kubectl est associé?

J'essaie de comprendre comment Kubectus obtient des autorisations pour exécuter les commandes. Je comprends que toutes les interactions avec les clusters KubeNettes traversent le kube-apiserver. Donc, lorsque nous exécutons une commande kubectl, disons kubectl obtenir des pods à partir du noeud maître, la demande ira via Kube-apiserver.

L'apiserver fait l'authentification et l'autorisation et fournit les résultats. Kubecl comme tout autre utilisateur ou ressource doit également être associé à un rôle et à un parcelle d'acquérir des autorisations pour accéder aux ressources sur le cluster. Comment puis-je vérifier à quel rôle et quel rôle est associé à Kubectl?

excuses s'il s'agit d'une question ridicule.


0 commentaires

3 Réponses :


1
votes

Vous pouvez utiliser kubectl config Voir code> pour voir quel contexte est actif maintenant. Vous verrez smth comme ceci:

$ kubectl auth can-i get pods --namespace=stage --as alice
yes


0 commentaires

2
votes

kubectl n'est pas associé à un rôle ou à un rôle-binding.Kubecl utilise un fichier appelé kubeconfig. Ce fichier a un certificat client ou un jeton au porteur JWT.

Si un certificat client est présenté et vérifié par le serveur API, le nom commun du sujet est utilisé comme nom d'utilisateur pour la demande.

Si un jeton porteur JWT est utilisé, toutes les données nécessaires pour identifier l'utilisateur se trouve dans le jeton lui-même.

C'est ainsi que l'authentification d'un utilisateur se produit dans Kubettes.

L'autorisation de l'utilisateur est définie par des règles de contrôle d'accès basé sur le rôle (RBAC) sous forme de rôle et de liaison de rôle.


0 commentaires

3
votes

Cette réponse est une extension des autres et vous aide à utiliser des scripts lorsque vous utilisez CERTIFICATS CLIENT STRY>:

Obtenez l'utilisateur et le groupe du contexte actuel: H2>

si Vous utilisez des certificats clients, votre fichier ~ / .kube / config code> contient Certificat client-Data ​​code> pour l'utilisateur du contexte actuel. Ces données sont un certificat codé base64 code> qui peut être affiché sous forme de texte avec opensel code>. Les informations intéressantes de votre question se trouve dans la section Sujet Code>. p>

Ce script imprimera la ligne Code> Sujet CODE> DU CERTIFICAT CLIENT: P>

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  annotations:
    rbac.authorization.kubernetes.io/autoupdate: "true"
  creationTimestamp: "2020-03-31T14:12:12Z"
  labels:
    kubernetes.io/bootstrapping: rbac-defaults
  name: cluster-admin
  resourceVersion: "42"
  selfLink: /apis/rbac.authorization.k8s.io/v1/clusterroles/cluster-admin
  uid: 9201f311-4d07-46c3-af36-2bca9ede098f
rules:
- apiGroups:
  - '*'
  resources:
  - '*'
  verbs:
  - '*'
- nonResourceURLs:
  - '*'
  verbs:
  - '*'


1 commentaires

Merci @adebasi c'est maintenant très clair pour moi. Je cherchais dans le rôle et les détails des rôles et j'ai complètement oublié de clusterrole et de clusterrolleding!