İç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
⏱️ 10 dk okuma📅 23 Nisan 2026🔄 Güncelleme: 15 Temmuz 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.

📋 İçindekiler

  1. 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

    Ingress2Gateway 1.0: Ingress'ten Gateway API'ye Geçiş
    Ingress2Gateway 1.0: Ingress'ten Gateway API'ye Geçiş15 Nis 2026
    Azure Portal'dan ZIP ile App Service Dağıtımı Kolaylaştı
    Azure Portal'dan ZIP ile App Service Dağıtımı Kolaylaştı11 Ağu 2026
    Copilot’ta Yeni Limitler: Ne Değişti, Ne Beklemeli?
    Copilot’ta Yeni Limitler: Ne Değişti, Ne Beklemeli?11 Nis 2026
    Copilot CLI'da C++ Dil Sunucusu: Kurulum Çilesi Bitiyor mu?
    Copilot CLI'da C++ Dil Sunucusu: Kurulum Çilesi Bitiyor mu?25 Haz 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

Yapay Zekâ Güvenliği İçin Daha Güçlü Koruma Çağrısı
Aşkın KILIÇ 0

Yapay Zekâ Güvenliği İçin Daha Güçlü Koruma Çağrısı

08/09/2026
Microsoft, hibrit fiziksel güvenliği Azure ile ölçekledi
Aşkın KILIÇ 0

Microsoft, hibrit fiziksel güvenliği Azure ile ölçekledi

07/09/2026
GitHub’dan Gizlilik Odaklı Yıldız Geçmişi API’si
Aşkın KILIÇ 0

GitHub’dan Gizlilik Odaklı Yıldız Geçmişi API’si

07/09/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
  • Yapay Zekâ Güvenliği İçin Daha Güçlü Koruma Çağrısı
    08/09/2026 Yapay Zekâ Güvenliği İçin Daha Güçlü Koruma Çağrısı
  • Microsoft, hibrit fiziksel güvenliği Azure ile ölçekledi
    07/09/2026 Microsoft, hibrit fiziksel güvenliği Azure ile ölçekledi
  • GitHub’dan Gizlilik Odaklı Yıldız Geçmişi API’si
    07/09/2026 GitHub’dan Gizlilik Odaklı Yıldız Geçmişi API’si
  • GPT-6 Astra Microsoft Foundry’de Genel Kullanıma Açıldı
    07/09/2026 GPT-6 Astra Microsoft Foundry’de Genel Kullanıma Açıldı
  • MSTest 4.4 ile Native AOT Uygulamalarını Test Etmek
    07/09/2026 MSTest 4.4 ile Native AOT Uygulamalarını Test Etmek
  • Copilot Cloud Agent Metriği: Kullanımı Ölçmek Kolaylaştı
    11/04/2026 Copilot Cloud Agent Metriği: Kullanımı Ölçmek Kolaylaştı
  • GitHub Code Scanning’de Toplu Düzeltme: PR’lar Hızlandı
    07/04/2026 GitHub Code Scanning’de Toplu Düzeltme: PR’lar Hızlandı
  • 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?
  • GitHub Copilot Cloud Agent İçin Runner Kontrolü: Kurumsal Düzen
    03/04/2026 GitHub Copilot Cloud Agent İçin Runner Kontrolü: Kurumsal Düzen
  • Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
    06/04/2026 Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
  • 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

SİZİN İÇİN DERLEDİK

Yapay Zekâ Güvenliği İçin Daha Güçlü Koruma Çağrısı
Güvenlik & Kimlik Yapay Zeka

Yapay Zekâ Güvenliği İçin Daha Güçlü Koruma Çağrısı

08/09/2026 Aşkın KILIÇ
Microsoft, hibrit fiziksel güvenliği Azure ile ölçekledi
Bulut Altyapı Güvenlik & Kimlik Microsoft Azure

Microsoft, hibrit fiziksel güvenliği Azure ile ölçekledi

07/09/2026 Aşkın KILIÇ
GitHub’dan Gizlilik Odaklı Yıldız Geçmişi API’si
Bulut Altyapı Geliştirici Araçları

GitHub’dan Gizlilik Odaklı Yıldız Geçmişi API’si

07/09/2026 Aşkın KILIÇ
GPT-6 Astra Microsoft Foundry’de Genel Kullanıma Açıldı
Bulut Altyapı Yapay Zeka

GPT-6 Astra Microsoft Foundry’de Genel Kullanıma Açıldı

07/09/2026 Aşkın KILIÇ
MSTest 4.4 ile Native AOT Uygulamalarını Test Etmek
DevOps Geliştirici Araçları Microsoft Azure

MSTest 4.4 ile Native AOT Uygulamalarını Test Etmek

07/09/2026 Aşkın KILIÇ
Multiple trusted publishing configurations for npm
Bulut Altyapı Geliştirici Araçları Güvenlik & Kimlik

Multiple trusted publishing configurations for npm

06/09/2026 Aşkın KILIÇ
Kurumsal Yapay Zekâda Azure’un Uçtan Uca Yaklaşımı
Microsoft Azure Yapay Zeka

Kurumsal Yapay Zekâda Azure’un Uçtan Uca Yaklaşımı

06/09/2026 Aşkın KILIÇ
Kesintisiz Şema Değişikliği İçin 6 Aşamalı Yol
Bulut Altyapı DevOps

Kesintisiz Şema Değişikliği İçin 6 Aşamalı Yol

06/09/2026 Aşkın KILIÇ
Fairwind Programı: Hükümetlere Sınırlı Siber Savunma
Güvenlik & Kimlik

Fairwind Programı: Hükümetlere Sınırlı Siber Savunma

06/09/2026 Aşkın KILIÇ
GitHub HydraFusion: Göreve Göre Model Orkestrasyonu
Bulut Altyapı Geliştirici Araçları Yapay Zeka

GitHub HydraFusion: Göreve Göre Model Orkestrasyonu

05/09/2026 Aşkın KILIÇ
Kubernetes v1.37’de Rootless Mod Beta Aşamasına Geldi
Güvenlik & Kimlik Konteyner & Kubernetes

Kubernetes v1.37’de Rootless Mod Beta Aşamasına Geldi

05/09/2026 Aşkın KILIÇ
SQL Decomposition: T-SQL’de Karmaşıklığı Azaltma
Geliştirici Araçları Veri & Analitik

SQL Decomposition: T-SQL’de Karmaşıklığı Azaltma

05/09/2026 Aşkın KILIÇ

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 sdk Azure SQL bulut bilişim C++ CI/CD CodeQL code review copilot Copilot CLI DevOps geliştirici verimliliği GitHub GitHub Actions GitHub Copilot güvenlik Kimlik Doğrulama Kubernetes Kurumsal geliştirme kurumsal güvenlik kurumsal yapay zeka maliyet optimizasyonu MCP Microsoft Agent Framework Microsoft Azure Microsoft Foundry otomasyon performans Pull Request RAG SEO uyumlu verimlilik veri yönetimi Visual Studio Visual Studio 2026 VS Code yapay zeka yapay zeka ajanları 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ı 432 yazı 🏗️ Bulut Altyapı 345 yazı 🤖 Yapay Zeka 289 yazı 🔧 DevOps 242 yazı ☁️ Microsoft Azure 231 yazı 🔒 Güvenlik & Kimlik 199 yazı 🏢 Kurumsal Teknoloji 83 yazı 📊 Veri & Analitik 62 yazı 🐳 Konteyner & Kubernetes 53 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