Gatekeeper nedir?
- Docker & Kubernetes kursu
- Uzman
- Ders 33/47
- 4 dk
Gatekeeper'ın Kubernetes admission webhook'u olduğunu öğrenirsin.
Gatekeeper nedir?
Gatekeeper, OPA'yı Kubernetes'e bağlayan projedir. İki parçası vardır:
- Admission denetleyicisi: yeni ya da değişen nesneleri politikalarla denetler, ihlal varsa reddeder.
- Denetim (audit): cluster'da zaten var olan nesneleri düzenli tarar ve ihlalleri politika nesnesinin status'una yazar.
Politikalar iki CRD ile yazılır: ConstraintTemplate (Rego mantığı ve parametre tanımı) ve Constraint (o şablonun hangi nesnelere, hangi parametrelerle uygulanacağı).
ConstraintTemplate K8sZorunluEtiket (Rego: etiket var mı?)
└── Constraint deployment-etiketleri (etiketler: [takim, ortam], hedef: Deployment)İhlalleri görmek
Audit sonuçları Constraint'in status'undadır. Reddedilen bir istek, ihlal mesajıyla birlikte kullanıcıya döner:
$ kubectl get k8szorunluetiket deployment-etiketleri -o jsonpath='{.status.totalViolations}'
4
$ kubectl create deployment deneme --image=nginx:1.27
error: admission webhook "validation.gatekeeper.sh" denied the request: [deployment-etiketleri] eksik etiket: takimUygulama İhlalleri sorgula
Üç komut yaz: ConstraintTemplate'leri listele (kubectl get constrainttemplates); k8szorunluetiket türündeki deployment-etiketleri Constraint'inin toplam ihlal sayısını jsonpath='{.status.totalViolations}' ile yazdır; aynı Constraint'i ayrıntılı göster.
Başlangıç kodu
# buraya yazÖrnek çözüm
kubectl get constrainttemplates
kubectl get k8szorunluetiket deployment-etiketleri -o jsonpath='{.status.totalViolations}'
kubectl describe k8szorunluetiket deployment-etiketleriBeklenen çıktı
NAME AGE
k8szorunluetiket 3d
4
Name: deployment-etiketleri
Status:
Total Violations: 4
Violations:
Message: eksik etiket: takim
Name: eski-rapor
Namespace: magaza
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Gatekeeper kurulmadan önce oluşturulmuş ve politikaya uymayan bir deployment ne olur?
- Hemen silinir
- Yeniden başlatılır
- Hiç fark edilmez
- Silinmez; audit onu ihlal olarak raporlar Doğru cevap
Açıklama: Admission yalnızca yeni istekleri durdurur; audit mevcutları gösterir.
2 Rego mantığını içeren nesne türünü yaz.
apiVersion: templates.gatekeeper.sh/v1
kind: ____
apiVersion: templates.gatekeeper.sh/v1
kind: ConstraintTemplate
Açıklama: Şablon mantığı, Constraint uygulamayı tanımlar.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
ConstraintTemplate |
Rego ve parametreler |
Constraint |
Nerede ve nasıl uygulanır |
admission |
Yeni istekleri durdurur |
audit |
Mevcutları raporlar |