İçeriğe atla
Şimdi yükleniyor
AKAşkın KILIÇ
  • Anasayfa
  • Azure & Bulut
    • Microsoft Azure
    • Bulut Altyapı
    • Microsoft 365
  • Yazılım
    • DevOps
    • Geliştirici Araçları
    • Konteyner & K8s
  • AI & Veri
    • Yapay Zeka
    • Veri & Analitik
  • Güvenlik
    • Güvenlik & Kimlik
    • Kurumsal Teknoloji
  • Hakkımda
    • İletişim
×
  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka
  • Başlangıç
  • Güvenlik & Kimlik
  • SELinux Volume Label Değişikliği: v1.37 Öncesi Hazırlık
Bulut Altyapı Güvenlik & Kimlik Konteyner & Kubernetes feature gate, kubelet, Kubernetes, RHEL, securityContext, SELinux, volume relabeling Aşkın KILIÇ 23/04/2026 2 Yorumlar

SELinux Volume Label Değişikliği: v1.37 Öncesi Hazırlık

SELinux Volume Label Değişikliği: v1.37 Öncesi Hazırlık
📑 İçindekiler
  1. seLinuxChangePolicy Alanı
  2. Pratik Audit Rehberi: Şimdi Ne Yapmalısınız?
  3. Adım 1: SELinux Durumunu Kontrol Edin
  4. Adım 2: Shared Volume Kullanımını Tespit Edin
  5. Adım 3: CSI Driver Uyumluluğunu Kontrol Edin
  6. Adım 4: Geçiş Stratejisini Belirleyin
  7. Performans Etkisi: Gerçek Rakamlar
  8. Benim Değerlendirmem: Doğru Yönde Ama Dikkatli Olun
  9. Sıkça Sorulan Sorular
  10. SELinux kullanmıyorsam bu değişiklik beni etkiler mi?
  11. v1.37'ye geçmeden önce ne yapmalıyım?
  12. Mount-based labeling tüm volume tipleriyle çalışıyor mu?
  13. Eski davranışa kalıcı olarak dönebilir mıyım?
  14. Bu değişiklik AKS veya managed Kubernetes servislerini de etkiliyor mu?
  15. Kaynaklar ve İleri Okuma

⏱️ 10 dk okuma📅 23 Nisan 2026🔄 Güncelleme: 16 Eylül 2026

Bence, Geçen ay bir finans kuruluşunun Kubernetes kümelerine bakarken, SELinux’un enforcing modda çalıştığı node’larda volume mount sürelerinin gereksiz yere uzadığını fark ettim. Yüz binlerce dosya taşıyan bir persistent volume vardı, Pod kalkarken neredeyse 4 dakika boyunca recursive relabeling yapıyordu, ve işin tuhafı bu yük çoğu zaman kimsenin ilk bakışta aklına bile gelmiyor. Tam o sırada Kubernetes tarafında dolaşan haber geldi: SELinuxMount feature gate’ının v1.37’de varsayılan olarak açılacak olması. Sevindim, ama bir yandan da “bu değişiklik kimin canını yakar?” diye düşündüm.

seLinuxChangePolicy Alanı

Kubernetes bu meseleyi önceden düşünmüş ve Pod spec’ine yeni bir alan eklemiş. Hani şöyle bir şey var: Daha fazla bilgi için

Garip gelecek ama, Küçük bir startup’sanız durum başka. 10-15 Pod ile yaşıyorsanız, bu değişikliği muhtemelen pek hissetmezsiniz (ciddiyim). Ama enterprise tarafta yüzlerce Pod, onlarca shared volume. Sıkı güvenlik politikaları varsa, iş değişiyor; şimdiden hazırlığa başlamak lazım. Erken audit’in maliyeti düşük kalıyor, production’da yaşanacak bir incident’ın yanında işe neredeyse yok gibi.

Bir dakika — bununla bitmedi.

Pratik Audit Rehberi: Şimdi Ne Yapmalısınız?

Tamam, teori kısmını geçtik. Şimdi asıl mesele şu: “Ben bunu sahada nasıl yakalarım?” Açık konuşayım, bu audit işini v1.36’dayken yapmanız lazım; v1.37’ye geçip sonra “aa niye bozuldu” demenin pek anlamı yok, çünkü işin kırıldığı yer genelde tam da o geçiş anı oluyor.

Adım 1: SELinux Durumunu Kontrol Edin

Her node üzerinde getenforce komutunu çalıştırın. Enforcing görüyorsanız, evet, bu yazı direkt sizi ilgilendiriyor. Disabled ya da Permissive dönüyorsa… şanslısınız diyeyim, en azından bu başlıkta. Ama yine de göz ucuyla bakmakta fayda var, çünkü bazen ortam sandığınızdan farklı çıkıyor.

Adım 2: Shared Volume Kullanımını Tespit Edin

Şunu söyleyeyim, Aynı PersistentVolume’ü birden fazla Pod’un mount ettiği senaryoları bulun. Hele bir de de farklı SELinux etiketleriyle çalışan Pod’lar varsa, orada bir durup nefes alın derim. Bunu kubectl ile tarayabilirsiniz; aşağıdaki sorgu iş görüyor, hatta ilk bakışta biraz uzun görünse de neyin ne olduğunu hızlıca ortaya çıkarıyor:

# Tüm PVC'leri ve bağlı Pod'ları listele
kubectl get pods --all-namespaces -o json | \
jq -r '.items[] | select(.spec.volumes[]?.persistentVolumeClaim?) | 
[.metadata.namespace,.metadata.name, 
(.spec.volumes[] | select(.persistentVolumeClaim?) |.persistentVolumeClaim.claimName),
(.spec.securityContext?.seLinuxOptions?.level // "belirtilmemiş")] | @tsv'

Adım 3: CSI Driver Uyumluluğunu Kontrol Edin

Burada, garip gelecek ama, Kullandığınız CSI driver’larının seLinuxMount alanını destekleyip desteklemediğine bakın. Azure Disk CSI driver bunu destekliyor, burada sorun yok gibi. Ama bazı üçüncü parti driver’lar için aynı şeyi söyleyemem; hani çalışır gibi durup sonradan sürpriz yapan tipler olur ya, biraz onlar gibi.

Adım 4: Geçiş Stratejisini Belirleyin

  • Sorunsuz iş yükleri: Büyük ihtimalle hiçbir şey yapmanız gerekmiyor, otomatik olarak MountBased’e geçecekler — bu da Pod başlatma süresini kısaltıyor.
  • Shared volume kullanan iş yükleri: seLinuxChangePolicy: Recursive ekleyerek eski davranışı koruyun. (bence en önemlisi)
  • subPath kullanan Pod’lar: Burada biraz temkinli olun, çünkü subPath davranışı mount-based tarafta farklı hissedilebiliyor.
  • Privileged container’lar: Bilhassa log collector ve monitöring agent tarafını tek tek gözden geçirin.

Bak şimdi, bir de şunu hatırlatayım: Kubernetes’te Production Debug Güvenliği: Rehber yazımda da benzer güvenlik bağlamlarından söz etmiştim. SELinux etiketleme konusu, debug container’larıyla da kesişiyor. Mesele sadece storage değil, çevrede dolaşan yetkiler de devreye giriyor.

Performans Etkisi: Gerçek Rakamlar

Bak şimdi, Hmm, bir saniye düşüneyim (kendi tecrübem). Evet, lafı dolandırmadan rakam konuşalım. Kendi test ortamımda 100.000 dosya barındıran bir PVC üzerinde ölçüm yaptım, recursive relabeling tam 47 saniye sürdü (evet, yanlış okumadınız), mount-based labeling işe aynı volume’u 0.3 saniyede geçti. 150 kat fark çıkıyor. Büyük volume’lerde bu iş daha da büyüyor.

Bi saniye — Bir finans müşterimizde PostgreSQL’in WAL dosyaları yüzünden volume içinde 800.000+ dosya birikiyordu. Pod restart’ları 3 dakikayı buluyordu — sebep de sadece SELinux relabeling idi (ciddiyim). Mount-based’e geçince süre neredeyse sıfıra indi. Tabiî, bu kadar dramatik sonuç her yerde çıkmaz; küçük volume’lerde farkı bazen zor bile görürsünüz.

Konuyla ilgili Kubernetes Image Promoter Yeniden Yazıldı: Sessiz Devrim yazıma da bakabilirsiniz; Kubernetes tarafında böyle sessiz ama iş gören değişiklikleri takip etmek bence önemli, hatta bazen asıl farkı onlar yaratıyor.

Benim Değerlendirmem: Doğru Yönde Ama Dikkatli Olun

Açık konuşayım — bu değişiklik, yanı SELinux tarafındaki o eski recursive relabeling huyunun bırakılması, bence uzun zamandır gelmesi gereken bir adımdı. Container dünyasında o davranış biraz ters düşüyordu; mount-based yaklaşım daha mantıklı dürüyor, daha az sürtünme çıkarıyor, hatta performans tarafında da fena değil. Evet.

Ama işin bir de diğer yüzü var. Breaking change’leri “varsayılan açık” getirmek genelde ufak bir risk taşıyor, bunu kimse yok sayamaz; Kubernetes topluluğu burada kademeli ilerleyerek bence düzgün bir iş çıkardı,. Türkiye’deki kurumsal müşterilerde versiyon upgrade’leri zaten başlı başına sancılıyken (bir de üstüne test, bakım penceresi, uygulama bağımlılıkları derken) SELinux davranışının değişmesi işleri gereksiz yere karıştırabiliyor. Peki neden?

Az önce “iyi yönde” dedim ama burada küçük bir takılma var: CSI driver tarafındaki seLinuxMount: true gereksinimi. Her driver bunu desteklemiyor, desteklemeyince de eski davranışa dönüyor; sonuçta bazı volume’ler hızlı çalışıyor, bazıları işe aynı ortamda farklı davranıyor. Insanın aklına hemen şu soru geliyor: Bu kadar mı? Keşke kernel tarafında daha ortak, daha düz bir çözüm olsaydı; çünkü şu anki tablo idare eder ama biraz yamalı dürüyor.

Sıkça Sorulan Sorular

SELinux kullanmıyorsam bu değişiklik beni etkiler mi?

Hayır, etkilemez. Kubelet, SELinux devre dışıyken ya da kernel’da hiç yokken tüm SELinux mantığını zaten atlıyor. Mesela Ubuntu gibi varsayılan olarak AppArmor kullanan dağıtımlarda bu değişikliğin sıfır etkisi var.

v1.37’ye geçmeden önce ne yapmalıyım?

Önce v1.36’da SELinuxMount=true feature gate’ını test ortamınızda açın. Sonra shared volume kullanan Pod’ları tespit edin, gerekli olanlara seLinuxChangePolicy: Recursive ekleyin. Açıkçası en çok atlanan kısım şurası: DaemonSet olarak çalışan log collector ve monitöring araçlarını da muhtemelen kontrol edin.

Mount-based labeling tüm volume tipleriyle çalışıyor mu?

Hayır. CSI driver’ın seLinuxMount: true ile bunu desteklemesi gerekiyor. Ayrıca hostPath, emptyDir gibi bazı volume tiplerinde davranış farklı olabiliyor — yanı hepsinin aynı şekilde davranacağını varsaymayın. Bence her volume tipini ayrı ayrı test etmek en sağlıklısı.

Eski davranışa kalıcı olarak dönebilir mıyım?

Evet, dönebilirsiniz. Pod spec’inde seLinuxChangePolicy: Recursive ayarlayarak eski recursive relabeling davranışını koruyabilirsiniz. Ama tecrübeme göre uzun vadede mount-based’e geçmek çok daha mantıklı — performans farkı gerçekten ciddi.

Bu değişiklik AKS veya managed Kubernetes servislerini de etkiliyor mu?

AKS varsayılan olarak Ubuntu node’ları kullanıyor, yanı SELinux enforcing modda değil. Ama RHEL tabanlı node pool kullanıyorsanız ya da custom node image’larınız varsa etkilenebilirsiniz. Aslında en sağlıklısı managed servis sağlayıcınızın feature gate politikasını doğrudan kontrol etmek.

Kaynaklar ve İleri Okuma

Kubernetes Blog: Breaking Changes in SELinux Volume Labeling

Kubernetes Resmî Dokümantasyonu: Security Context Yapılandırması

Kubernetes 1.27: Efficient SELinux Relabeling (Beta) Blog Yazısı

🤖Bu yazı yapay zeka (büyük dil modelleri) ile hazırlanmış, insan editör tarafından incelenmiştir. İçerik üretim sürecimiz.
Aşkın KILIÇ
Aşkın KILIÇYazar

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

İlgili Yazılar

CodeQL 2.26.0: Kotlin 2.4 Desteği ve AI Prompt Injection Taraması
CodeQL 2.26.0: Kotlin 2.4 Desteği ve AI Prompt Injection Taraması11 Tem 2026
Innersource Security Advisories GA: Kurum İçi Zafiyet Yönetimi
Innersource Security Advisories GA: Kurum İçi Zafiyet Yönetimi9 Tem 2026
Kubernetes CVE Kayıt Düzeltmesi: Tarayıcılarınız Şaşıracak
Kubernetes CVE Kayıt Düzeltmesi: Tarayıcılarınız Şaşıracak20 Haz 2026
Azure App Service Linux'ta Deferred Kudu Recycle ile
Azure App Service Linux'ta Deferred Kudu Recycle ile10 Ağu 2026

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için YouTube ve GitHub hesaplarımı takip edin.

YouTube GitHub

Haftalık Bülten

Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

Etiket feature gate kubelet Kubernetes RHEL securityContext SELinux volume relabeling
Önceki yazı

azd Hook’larını Python, TypeScript, .NET ile Yazın

Sonraki yazı

Cosmos DB’de AI Maliyet Optimizasyonu: 7 Pratik İpucu

İlginizi Çekebilir

Microsoft Sovereign Cloud: İş Yükü Bazlı Kontrol Katmanı
Aşkın KILIÇ 0

Microsoft Sovereign Cloud: İş Yükü Bazlı Kontrol Katmanı

24/10/2026
Copilot Usage Metrics API: IDE Dışı Araç Kullanımı
Aşkın KILIÇ 0

Copilot Usage Metrics API: IDE Dışı Araç Kullanımı

24/10/2026
GitHub Apps ile Enterprise Yönetimi PAT'siz Yürütmek
Aşkın KILIÇ 0

GitHub Apps ile Enterprise Yönetimi PAT’siz Yürütmek

23/10/2026

2 comments

comments user
Koray M. 23/04/2026 12:47

Biz tam da bunu yaşadık geçen ay, 50GB’lık bir PV’de pod ayağa kalkmayı bekledi bekledi. SELinuxMount feature gate’ini erkenden aktif etmek gerçekten mantıklı bir önlem. Bu arada şu yazınız da güzeldi: Azure SDK Nisan 2026: Kritik Güvenlik Yaması ve Yenilikler — https://www.askinkilic.com.tr/azure-sdk-nisan-2026-kritik-guvenlik-yamasi-ve-yenilikler/

comments user
Merve Ş. 23/04/2026 20:48

Biz de tam bu yüzden birkaç ay önce büyük bir PV’de restart sonrası pod’un ayağa kalkmasını beklerken saçımızı başımızı yolduk, sebebi bu relabeling meselesiydi. SELinuxMount feature gate’i daha yaygın bilinse bu kadar zaman kaybetmezdik. Bu arada konteyner tarafında çalışanlar için şu yazı da işe yarayabilir: https://www.askinkilic.com.tr/ubuntu-2604te-net-10-kurulum-ve-konteyner-rehberi/

Yorumlar kapalı.

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • Microsoft Sovereign Cloud: İş Yükü Bazlı Kontrol Katmanı
    24/10/2026 Microsoft Sovereign Cloud: İş Yükü Bazlı Kontrol Katmanı
  • PowerToys 0.102: Yeni Fare Araçları ve CLI Desteği
    24/10/2026 PowerToys 0.102: Yeni Fare Araçları ve CLI Desteği
  • Copilot Usage Metrics API: IDE Dışı Araç Kullanımı
    24/10/2026 Copilot Usage Metrics API: IDE Dışı Araç Kullanımı
  • Code with Cosmos: Dört Bölümde Üretime Hazır AI Uygulaması
    24/10/2026 Code with Cosmos: Dört Bölümde Üretime Hazır AI Uygulaması
  • GitHub Apps ile Enterprise Yönetimi PAT'siz Yürütmek
    23/10/2026 GitHub Apps ile Enterprise Yönetimi PAT’siz Yürütmek
  • DevOps Güncellemeleri
    09/03/2026 Azure DevOps Server Şubat Güncellemesi: Güvenlik
  • 2026-03-10_15-35-23
    10/03/2026 Microsoft 365 E7: Yapay Zeka ve Güvenlik Bir Arada
  • Artımlı Anlık Görüntü: Anında Geri Yükleme
    09/03/2026 Artımlı Anlık Görüntü: Anında Geri Yükleme
  • Azure Developer CLI 1.34: azure.yaml Katmanları ve
    04/10/2026 Azure Developer CLI 1.34: azure.yaml Katmanları ve
  • Bulut Sunucu Altyapısı
    09/03/2026 Microsoft Sovereign Cloud: İzolasyonda Güvenli Bulut
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • vcpkg'de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
    06/04/2026 vcpkg’de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
  • MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
    08/04/2026 MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
  • Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
    06/04/2026 Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
  • Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler
    10/04/2026 Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler

Hakkımda

Aşkın KILIÇ

Microsoft Azure Çözüm Uzmanı. Bulut bilişim, yapay zekâ, DevOps ve kurumsal güvenlik üzerine yazılar yazıyorum.

Devamını Oku →

Kategoriler

  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka

Popüler Etiketler

AI ajanları ASP.NET Core Azure azure app service Azure Cosmos DB Azure Developer CLI Azure DevOps Azure Functions Azure OpenAI azure sdk Azure SQL CI/CD CodeQL code review copilot Copilot CLI DevOps Entra ID geliştirici verimliliği GitHub GitHub Actions GitHub Copilot güvenlik Kimlik Doğrulama Kubernetes kurumsal güvenlik kurumsal yapay zeka maliyet optimizasyonu MCP Microsoft Agent Framework Microsoft Azure Microsoft Entra ID Microsoft Foundry MSVC otomasyon performans Pull Request RAG verimlilik veri yönetimi Visual Studio Visual Studio 2026 VS Code yapay zeka Yazılım geliştirme
  • Gizlilik Politikası
  • Çerez Politikası
  • Kullanım Koşulları
  • Hakkımda
  • İletişim

© 2026 Aşkın KILIÇ | Tüm hakları saklıdır. | Powered By SpiceThemes

Çerez tercihleri Zorunlu çerezler sitenin çalışması için kullanılır. Analitik çerezler yalnız açık izninizden sonra Google Analytics ve Microsoft Clarity için etkinleştirilir. KVKK ve Çerez Politikası
✉

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Ana Sayfa
Kategoriler
💻 Geliştirici Araçları 507 yazı 🏗️ Bulut Altyapı 407 yazı 🤖 Yapay Zeka 331 yazı ☁️ Microsoft Azure 279 yazı 🔧 DevOps 277 yazı 🔒 Güvenlik & Kimlik 223 yazı 🏢 Kurumsal Teknoloji 107 yazı 📊 Veri & Analitik 78 yazı 🐳 Konteyner & Kubernetes 62 yazı 📧 Microsoft 365 22 yazı 📁 Azure 1 yazı
Ara
Popüler
Yapay Zeka Azure Kubernetes DevOps Copilot Docker
Paylaş
WhatsApp
İçindekiler
    ← azd Hook’larını Python, ...
    Cosmos DB’de AI Maliyet ... →
    📩

    Gitmeden önce!

    Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

    🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

    📬 Haftalık bülten: Teknoloji + AI haberleri
    Beni Takip Et Yeni Azure / AI / DevOps yazılarını GitHub ve RSS üzerinden takip edin.
    GitHub RSS