CodeBlanks Logo Icon CodeBlanks

Role ve ClusterRole

Role ve ClusterRole farklarını öğrenirsin.

Role ve ClusterRole

Role bir namespace'e özgüdür; ClusterRole cluster kapsamlıdır: tüm namespace'lerde ya da node, PV gibi cluster kapsamlı kaynaklarda geçerli olabilir. Her kural apiGroups, resources ve verbs içerir:

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: pod-okuyucu
  namespace: dev
rules:
  - apiGroups: [""]
    resources: ["pods", "pods/log"]
    verbs: ["get", "list", "watch"]

"" çekirdek API grubudur (pods, services, configmaps); deployment'lar "apps" grubundadır.

Hazır ClusterRole'ler

Kubernetes kullanıma hazır ClusterRole'ler getirir: view (okuma, Secret hariç), edit (çoğu kaynağı değiştirme, RBAC hariç), admin (namespace içinde her şey), cluster-admin (her şey). Kendi rolünü yazmadan önce bunlar değerlendirilir:

$ kubectl get clusterroles view edit admin cluster-admin
kubectl describe clusterrole view | head -12
kubectl create role deploy-yonetici --verb=get,list,create,update,patch --resource=deployments -n dev

Uygulama Pod okuyucu rolü

Bir Role YAML'ı yaz: rbac.authorization.k8s.io/v1; adı pod-okuyucu, namespace'i dev; tek kural: apiGroups: [""], resources: ["pods", "pods/log"], verbs: ["get", "list", "watch"].

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: pod-okuyucu
  namespace: dev
rules:
  - apiGroups: [""]
    resources: ["pods", "pods/log"]
    verbs: ["get", "list", "watch"]

Beklenen çıktı

role.rbac.authorization.k8s.io/pod-okuyucu created

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Node'ları listeleme izni Role ile verilebilir mi?

  • Hayır; node cluster kapsamlıdır, ClusterRole gerekir Doğru cevap
  • Evet
  • Yalnızca default namespace'te
  • Yalnızca okumak için

Açıklama: Role yalnızca kendi namespace'indeki kaynakları kapsar.

2 Çekirdek API grubunu belirt.

Soru
rules:
  - apiGroups: [____]
    resources: ["pods"]
Cevap
rules:
  - apiGroups: [""]
    resources: ["pods"]

Açıklama: Çekirdek grup boş dizgedir.

3 Eşleştir.

Kavram Anlamı
view Okuma (Secret hariç)
edit Değiştirme
admin Namespace yöneticisi
cluster-admin Her şey

İleri seviye bölümündeki tüm dersler