Kubernetes'te Politika Uygulama: OPA Gatekeeper mı Kyverno mu, Ne Zaman Hangisi
RBAC kimin ne yapabileceğini belirler ama neyin geçerli bir kaynak olduğunu belirlemez. Admission controller tabanlı politika motorları bu boşluğu dolduruyor; OPA Gatekeeper, Kyverno ve Kubernetes'in kendi ValidatingAdmissionPolicy'sini karşılaştırıp hangisinin nerede işe yaradığını, hangi tuzakların beklediğini anlatıyoruz.
Bir kümede RBAC iyi kurulmuşsa kimin hangi namespace'e pod yazabileceğini, kimin Secret okuyabileceğini net biçimde tarif eder. Ama RBAC'ın hiç ilgilenmediği bir soru vardır: yazılan pod'un kendisi makul mü? latest etiketli bir imaj mı çekiyor, privileged: true mu çalışıyor, gerekli kaynak limitleri var mı, zorunlu bir etiket setiyle mi geldi? Bu sorular yetkilendirme değil doğrulama sorularıdır ve RBAC'ın kapsamına hiç girmez. Bir geliştirici pod oluşturma yetkisine sahipse, o pod'un içeriği üzerinde -imaj kaynağından ayrıcalık seviyesine kadar- hiçbir sınır yoktur.
Bu boşluk, admission controller katmanında kapatılır. Kubernetes API sunucusu bir isteği kabul etmeden önce sırasıyla kimlik doğrulama, yetkilendirme, mutating admission webhook'ları ve validating admission webhook'ları aşamalarından geçirir; nesne etcd'ye ancak bu zincirin sonunda yazılır. Son yıllarda bu katmanı kullanan üç farklı yaklaşım olgunlaştı: OPA Gatekeeper, Kyverno ve Kubernetes'in kendi native ValidatingAdmissionPolicy kaynağı. Üçü de aynı problemi çözüyor ama farklı bedeller karşılığında.
Üç yaklaşımın gerçek hâli
OPA Gatekeeper, Open Policy Agent projesinin Kubernetes'e özel dağıtımıdır. Politikalar Rego dilinde yazılır ve iki parçaya bölünür: ConstraintTemplate politikanın mantığını tanımlar, Constraint ise o şablonu hangi kaynaklara, hangi parametrelerle uygulayacağını belirtir.
Rego, genel amaçlı bir sorgu dilidir; bu güç, birden fazla kaynağı birbirine karşı doğrulamak (örneğin bir Ingress'in referans verdiği Service'in gerçekten var olup olmadığını kontrol etmek) gibi karmaşık senaryolarda işe yarar. Bedeli ise öğrenme eğrisidir: ekipte daha önce Rego yazan kimse yoksa ilk birkaç politika beklenenden uzun sürer.
Kyverno aynı problemi Kubernetes'in kendi YAML alışkanlığıyla çözer. Ayrı bir dil öğrenmeden, pattern tabanlı eşleştirme ya da (yeni sürümlerde) CEL ifadeleriyle politika yazılır.
Kyverno'nun asıl farkı sadece validate değil, aynı motorun mutate ve generate kurallarını da desteklemesi: eksik bir alanı otomatik doldurabilir ya da bir Namespace oluşturulduğunda ona bağlı bir NetworkPolicy'yi kendisi üretebilir. Gatekeeper'da bu üretim (generate) yeteneği yoktur, sadece doğrular ve isteğe bağlı mutasyon yapar.
Üçüncü yol, harici bir bileşen kurmadan gelir: Kubernetes 1.30'dan itibaren GA olan ValidatingAdmissionPolicy, CEL ifadeleriyle doğrulama kuralını doğrudan API sunucusunun içinde çalıştırır, ayrı bir webhook pod'una ihtiyaç duymadan.
Burada kazanç işletimsel: harici bir webhook servisinin ayakta olup olmadığı, ağ gecikmesi eklediği ya da kendi Deployment'ının güncellenmesi gerektiği gibi bir bağımlılık yok. Bedeli ise kapsam: mutasyon ya da kaynak üretimi yapamaz, yalnızca doğrulama içindir, ve CEL Rego kadar ifade gücüne sahip değildir.
Tuzaklar
Üç yaklaşımın da paylaştığı ortak risk failurePolicy alanıdır. Fail seçilirse, politika motorunun webhook'u geçici olarak yanıt vermediğinde (pod yeniden başlıyor, node tahliye ediliyor) o kaynak türüne dokunan hiçbir istek geçemez; küme genelinde deploy işlemleri durabilir. Ignore seçilirse motor çöktüğünde politikalar sessizce devre dışı kalır ve kimse fark etmez. Pratikte doğru yaklaşım, politika motorunun kendi namespace'ini namespaceSelector ile hariç tutmak (aksi hâlde motor kendi güncellemesini kendi webhook'una takılıp bloke edebilir) ve Fail politikasını yalnızca motorun yüksek kullanılabilirlikle (en az iki replika, PodDisruptionBudget ile) çalıştığından emin olduktan sonra kullanmaktır.
İkinci tuzak, bir politikayı doğrudan Enforce/Deny moduyla üretime sürmektir. Hem Gatekeeper hem Kyverno bir denetim (audit/dryrun) modu sunar: politika hangi mevcut kaynakların ihlalde olduğunu raporlar ama hiçbir isteği reddetmez. Yeni bir politikayı önce bu modda birkaç gün çalıştırıp mevcut kümedeki ihlalleri temizlemeden zorunlu hâle getirmek, üretimde beklenmedik deploy engellenmelerine yol açar. ValidatingAdmissionPolicy'de aynı kademeli geçiş validationActions alanına Warn veya Audit yazılarak taklit edilir.
Üçüncü tuzak performansla ilgilidir: her admission isteği zincirdeki her webhook'a senkron olarak gider. Çok sayıda karmaşık Rego kuralı çalıştıran bir Gatekeeper kurulumu, yoğun deploy dönemlerinde API sunucusu gecikmesine ölçülebilir katkı yapar. Politika sayısı arttıkça match bloklarını mümkün olduğunca dar tutmak (her kaynağa değil, sadece ilgili kind ve namespace'e uygulamak) gecikmeyi kontrol altında tutar.
Deploy etmeden önce test etmek
Bir politikayı doğrudan kümeye uygulayıp sonucu canlıda görmek, hangi motoru seçerseniz seçin kötü bir alışkanlıktır. Gatekeeper'ın gator komut satırı aracı, örnek Kubernetes nesnelerini bir ConstraintTemplate ve Constraint çiftine karşı kümeye hiç dokunmadan çalıştırır ve hangi nesnenin hangi gerekçeyle reddedileceğini yerel olarak gösterir. Kyverno tarafında aynı işi kyverno apply <policy.yaml> --resource <test-objesi.yaml> ya da CI'a bağlanabilen kyverno test komutu görür; bir politika deposunda beklenen sonuçları (pass/fail) tanımlayan test dosyaları tutup her değişiklikte otomatik çalıştırmak mümkündür. ValidatingAdmissionPolicy içindeki CEL ifadeleri için ayrı bir CLI yoktur, ama ifade nispeten kısa olduğundan çoğu ekip önce kubectl create --dry-run=server ile deneyip API sunucusunun CEL'i nasıl değerlendirdiğini doğrudan gözlemler. Bu üç yöntemin ortak noktası, bir politika değişikliğinin sonucunu önce yerelde ya da CI'da görmek, üretimdeki ilk deploy'da öğrenmemektir.
Ne zaman hangisi
Ekipte OPA deneyimi zaten varsa ya da politikanın birden fazla kaynağı birbirine karşı doğrulaması gerekiyorsa (bir Deployment'ın referans verdiği ConfigMap'in var olup olmadığını kontrol etmek gibi) Gatekeeper'ın Rego'su bu tür sorguları doğal olarak ifade eder. Sıfırdan başlayan, ekipte yeni bir dil öğrenme maliyetine girmek istemeyen ve mutate/generate ihtiyacı olan (eksik alanları otomatik tamamlamak, ilişkili kaynakları kendiliğinden üretmek) ekipler için Kyverno daha az sürtünmeyle aynı sonuca ulaşır. Yalnızca basit, tek kaynağa bakan doğrulama kuralları yazılacaksa ve harici bir bileşen kurmadan işi bitirmek öncelikliyse, ValidatingAdmissionPolicy en az hareketli parçaya sahip seçenektir; küçük kümelerde ayrıca bir Deployment, bir Service, bir sertifika yönetimi eklemeden başlanabilir.
Hiçbirini seçmemek gereken durum da var: birkaç kişilik, tek namespace'lik bir kümede bu sorunlar genelde PR incelemesiyle ya da basit bir CI doğrulamasıyla (manifestleri kubeconform gibi bir araçla şemaya karşı kontrol etmek) yeterince kapanır. Admission tabanlı bir politika motoru kurmanın asıl getirisi, birden fazla ekibin aynı kümeyi paylaştığı ve merkezi bir ekibin standartları elle değil otomatik olarak zorlamak istediği andan itibaren başlar.
1-5 tab geçiş ·
tab sonraki ·
esc geri al ·
↓ kaydır
> ls -lah ~/services/ --sort=tier
[OK] 25 records · 8 featured · 1 retainer · 16 standard
/02 hizmetler
services.tree
> note
· Fiyatlar USD cinsindendir. 6-12 günlük projelerde %7, 13+ günlük projelerde %14 hacim indirimi uygulanmaktadır. 100 adam-gün ve üzeri kapsamlı programlarda proje bazlı özel fiyatlandırma yapılır. Fiyatlar kapsam, aciliyet ve uzun dönem iş birliğine göre müzakere edilebilir.
> ls ~/products/ --open-source
[OK] 2 entries · 1 live · 1 pre-release
/03 ürünler
products.list
liveaçık kaynak · mit/prod/01
filex
her yere gömülebilen self-hosted dosya yöneticisi
tek go binary · vue/react/web-component embed · 5 storage sürücüsü · realtime collab · rbac · native multi-tenancy · ai ajanları için mcp server
Altyapıyı kurar, otomasyonu sağlar, sistemi ayakta tutar.
BRF Teknoloji, Bursa merkezli bir DevSecOps ve yazılım danışmanlık firmasıdır. Kubernetes cluster yönetiminden serverless platform kurulumuna, CI/CD pipeline tasarımından AI agent geliştirmeye kadar 25 farklı hizmet alanında çalışıyoruz.
İşimizin özü basit: sisteminizi ayağa kaldırır, otomatize eder ve gece 3'te sizi uyandırmayacak hale getiririz. Terraform ile altyapınızı kodlar, ArgoCD ile deploy sürecinizi GitOps'a taşır, Prometheus ile her şeyi izleriz. Bir şey bozulursa — biz bozulmadan önce müdahale ederiz.
Vendor lock-in'e karşıyız. Açık kaynak araçlarla, self-hosted çözümlerle ve endüstri standardı teknolojilerle çalışırız. Knative üzerinde kendi serverless platformunuzu kurarız, Kata Containers ile izole ederiz, Vault ile secret'larınızı yönetiriz. Her projeyi net kapsam, net süre, net fiyatla teslim ederiz.
DevSecOps & CI/CD
Kubernetes & Serverless
Infrastructure as Code
AI & Agent (MCP/ACP)
Güvenlik & Sıfır Güven
Full-Stack Geliştirme
Self-Hosted Çözümler
> grep -i question ~/faq.md
[OK] 3 entries · click to expand
[?]BRF Teknoloji'nin DevOps çözümleri hangi hizmetleri içerir?▾
CI/CD pipeline kurulumu, Kubernetes cluster yönetimi, container migrasyonu, Terraform ile altyapı otomasyonu, monitoring & alerting, şirket içi teknoloji kurulumları ve DevOps danışmanlık hizmetleri sunuyoruz.
[?]Yazılım geliştirme hizmetleriniz nelerdir?▾
MVP geliştirme, mevcut yazılım performans optimizasyonu, backend API geliştirme (Node.js, Go, Python) ve tam stack uygulama geliştirme hizmetleri sunuyoruz. Her projede teknik borç minimumda tutularak teslim edilir.
[?]Hangi DevOps araçlarıyla çalışıyorsunuz?▾
Kubernetes ve Docker’dan Talos Linux’a, Terraform ve OpenTofu’dan Ansible’a, Jenkins, GitLab CI/CD, GitHub Actions, ArgoCD, Flux, Helm ve Rancher’a kadar endüstri standardı araçlarla çalışıyoruz. İzleme ve hata takibinde Prometheus, Grafana, Loki, Tempo, OpenTelemetry ve GlitchTip; ağ katmanında Cilium ve Envoy; test otomasyonunda Playwright, Cypress, k6, Locust, Testcontainers ve Trivy kullanıyoruz. Projenizin ihtiyacına göre en uygun araç setini birlikte belirliyoruz.
brf.sh / 2026
·bursa/tr·
timezone utc+3·
tüm sistemler nominal
> ./connect --target=brf.sh
/05 iletişim
contact.txt
> cat contact.txt
[email][email protected] [phone]+90 530 871 2248 [location] Üçevler Mah. İzmir Yolu Cad 241D 16120 Nilüfer/Bursa [hours] Hafta içi 09:00 — 18:00 UTC+3 [eta] <24s iş günü
[OK] handshake ready
· turnstile enabled
· yanıt süresi: <24s · saat dilimi UTC+3 / bursa
CI/CD Pipeline Kurulumu
GitHub Actions, GitLab CI/CD ile otomatik build, test ve deploy süreçleri.
Mevcut ya da sıfırdan bir repo için otomatik build, test ve deploy pipeline'ı kurulur. GitHub Actions, GitLab CI/CD veya tercih edilen araç kullanılır. Staging + production ortamları için ayrı akışlar tanımlanır.
Mevcut uygulamaların container mimarisine taşınması.
Mevcut uygulamaların container mimarisine taşınması. Docker image tasarımı, Compose yapılandırması ve Kubernetes manifest'lerine dönüştürme. İleri düzey izolasyon için Kata Containers / gVisor dahil edilebilir.
Prometheus, Grafana, Loki ile altyapı ve servis izleme.
Prometheus + Grafana stack kurulumu, servis ve altyapı metrikleri için dashboard'lar, kritik eşikler için alert tanımları. İsteğe bağlı: Zabbix, Loki log aggregation.
GitLab, Nextcloud, VPN, mail sunucusu gibi şirket içi araçlar.
GitLab, Mattermost, Nextcloud, mail sunucusu, VPN, iç monitoring gibi araçların şirket sunucularında kurulumu. Docker Compose veya Kubernetes üzerinde deploy edilir.
MCP/ACP agent'lar, RAG pipeline, multi-agent orchestration, model serving.
LLM entegrasyonu (OpenAI, Claude, Gemini, lokal modeller), MCP (Model Context Protocol) ve ACP (Agent Communication Protocol) ile tool-augmented AI agent'lar. RAG pipeline, multi-agent orchestration, model serving (vLLM/Ollama). Mevcut iş süreçlerine yapay zeka katmanı.
Apache Kafka, RabbitMQ, NATS ile event-driven data pipeline. Apache Airflow ile ETL/ELT orkestrasyon, real-time data akışı, CDC (Change Data Capture). Data lake/warehouse tasarımı, schema registry, dead letter queue yönetimi.
Paketler
Kafka/RabbitMQ kurulumu + temel producer/consumer
$3,500
5–7 adam/gün
ETL pipeline (Airflow + source → warehouse)
$5,200
8–12 adam/gün
Tam event-driven architecture (CDC + streaming + DLQ)
ELK Stack veya Loki + Grafana ile merkezi log yönetimi. OpenTelemetry ile distributed tracing, Jaeger/Tempo entegrasyonu. Log retention politikası, structured logging standartları, anomaly detection. Tüm servislerde uçtan uca observability.
Playwright, Cypress ile E2E test otomasyonu, k6/Gatling ile yük testi. CI/CD pipeline'a entegre pre-deploy quality gate, test coverage raporlama, visual regression testing. AI-assisted test generation ile test yazım süresini %60'a kadar düşürme.
Backstage veya Port ile internal developer portal kurulumu. Self-service ortam oluşturma, golden path template'leri, service catalog, TechDocs entegrasyonu. Developer experience (DX) metrikleri, DORA metrics takibi, cognitive load azaltma.
Paketler
Backstage/Port kurulumu + service catalog
$3,900
6–8 adam/gün
Golden path templates + self-service ortam
$6,500
10–14 adam/gün
Tam platform (portal + templates + DORA + DX metrikleri)
Toplanan Kişisel Verileriniz, Toplanma Yöntemi ve Hukuki Sebebi
Kimliğinizi belirli ya da belirlenebilir kılan her türlü bilgi "kişisel veri" olarak kabul edilmektedir. Web sitemizi ziyaret ettiğinizde veya hizmetlerimizi kullandığınızda; ad, soyad, e-posta adresi, telefon numarası gibi iletişim bilgileriniz, IP adresiniz ve tarayıcı çerez verileri otomatik ya da yarı-otomatik yollarla toplanabilir. Bu veriler, 6698 sayılı Kişisel Verilerin Korunması Kanunu'nun 5. maddesinde belirtilen "bir sözleşmenin kurulması veya ifasıyla doğrudan doğruya ilgili olması" ve "ilgili kişinin temel hak ve özgürlüklerine zarar vermemek kaydıyla, veri sorumlusunun meşru menfaatleri için veri işlenmesinin zorunlu olması" hukuki sebeplerine dayanılarak işlenmektedir.
Kişisel Verilerinizin İşlenme Amacı
Toplanan kişisel verileriniz; hizmetlerimizin sunulması ve iyileştirilmesi, müşteri taleplerinin karşılanması, yasal yükümlülüklerin yerine getirilmesi, bilgi güvenliği süreçlerinin yürütülmesi ve iletişim faaliyetlerinin yönetilmesi amaçlarıyla işlenmektedir. Verileriniz, belirtilen amaçlarla sınırlı ve ölçülü olarak işlenir; amacın ortadan kalkması halinde silinir, yok edilir veya anonim hale getirilir.
Toplanan Kişisel Verilerin Kimlere ve Hangi Amaçlarla Aktarılabileceği
Kişisel verileriniz; yasal düzenlemelerin gerektirdiği hallerde kamu kurum ve kuruluşlarına, hizmetlerin sunulması amacıyla iş ortaklarımıza ve teknik altyapı sağlayıcılarına, hukuki uyuşmazlıklarda avukatlar ve danışmanlara aktarılabilir. Aktarım, Kanun'un 8. ve 9. maddelerine uygun olarak, gerekli teknik ve idari tedbirler alınarak gerçekleştirilir.
Kişisel Verileri İşlenen Kişi Olarak Haklarınız
6698 sayılı Kanun'un 11. maddesi uyarınca; kişisel verilerinizin işlenip işlenmediğini öğrenme, işlenmişse bilgi talep etme, işlenme amacını ve amacına uygun kullanılıp kullanılmadığını öğrenme, yurt içinde veya yurt dışında aktarıldığı üçüncü kişileri bilme, eksik veya yanlış işlenmişse düzeltilmesini isteme, Kanun'un 7. maddesindeki şartlar çerçevesinde silinmesini veya yok edilmesini isteme, yapılan işlemlerin aktarıldığı üçüncü kişilere bildirilmesini isteme, münhasıran otomatik sistemler vasıtasıyla analiz edilmesi suretiyle aleyhinize bir sonucun ortaya çıkmasına itiraz etme ve kanuna aykırı işleme sebebiyle zarara uğramanız halinde zararın giderilmesini talep etme haklarına sahipsiniz. Bu haklarınızı kullanmak için web sitemizdeki iletişim kanalları aracılığıyla bize başvurabilirsiniz.
Şartlar ve Koşullar
Şartlar ve Koşullar
1. Hizmet Kapsamı ve Değişiklikler
BRF Teknoloji, sunduğu yazılım geliştirme, DevOps danışmanlık, altyapı kurulumu ve teknik destek hizmetlerini bu şartlar ve koşullar çerçevesinde yürütür. Hizmet kapsamı, her proje için ayrıca belirlenir ve karşılıklı mutabakat ile kesinleştirilir. BRF Teknoloji, sunduğu hizmetlerin kapsamını, fiyatlandırmasını ve teknik detaylarını önceden bildirmek kaydıyla güncelleme hakkını saklı tutar.
2. Gizlilik Politikası
Hizmetlerimiz kapsamında toplanan kişisel veriler, Gizlilik Politikamız çerçevesinde işlenir. Detaylı bilgi için Gizlilik Politikası sayfamızı inceleyebilirsiniz.
3. Hizmet Kullanımı ve Sorumluluklar
Müşteriler, sunulan hizmetleri yalnızca yasal ve etik çerçevede kullanmayı kabul eder. Hizmetlerin kötüye kullanılması, üçüncü taraf haklarının ihlali veya yasa dışı faaliyetler için kullanılması durumunda BRF Teknoloji hizmeti askıya alma veya sonlandırma hakkına sahiptir. Müşteri, proje kapsamında sağladığı bilgilerin doğruluğundan ve güncelliğinden sorumludur.
4. Ödeme Şartları
Ödeme koşulları proje bazında belirlenir ve proje başlangıcında karşılıklı mutabakat ile kesinleştirilir. Aksi belirtilmedikçe, faturalar proje tesliminden itibaren 15 gün içinde ödenir. Geciken ödemelerde aylık %2 gecikme faizi uygulanabilir.
5. İptal ve İade Politikası
İptal talepleri, hizmetin başlangıç tarihinden en az 7 gün önce yazılı olarak bildirilmelidir. Başlamış projelerde, tamamlanan iş oranına göre ücretlendirme yapılır. Proje kapsamında özel olarak geliştirilen yazılım ve altyapı bileşenleri için iade yapılmaz.