İç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ıç
  • Konteyner & Kubernetes
  • KYAML Nedir ve Kubernetes YAML’ı Nasıl Biçimlendirir?
Geliştirici Araçları Konteyner & Kubernetes kubectl -o kyaml, Kubernetes manifest, KYAML, YAML biçimlendirme, yamlfmt Aşkın KILIÇ 15/08/2026 2 Yorumlar

KYAML Nedir ve Kubernetes YAML’ı Nasıl Biçimlendirir?

KYAML Nedir ve Kubernetes YAML'ı Nasıl Biçimlendirir?
📑 İçindekiler
  1. KYAML nedir?
  2. Hangi sorunları çözüyor?
  3. Boşluğa duyarlılık
  4. Sessiz tür dönüşümleri
  5. JSON neden çözüm değil?
  6. KYAML'ın kuralları
  7. Aynı manifest, iki farklı stil
  8. YAML'ı KYAML olarak üretmenin yolları
  9. Seçenek 1: kubectl -o kyaml
  10. Seçenek 2: Kubernetes'in yamlfmt aracı
  11. Seçenek 3: Google'ın yamlfmt aracı
  12. KYAML'a geçmeye değer mi?
  13. İlgili İçerikler
  14. Kaynaklar ve İleri Okuma

⏱️ 4 dk okuma📅 15 Ağustos 2026

Kubernetes manifestlerini yazarken YAML uzun süredir fiili standart. YAML’ın esnekliği aynı yapıyı farklı şekillerde ifade etmeye izin verdiği için ekiplerde tutarsızlığa ve zaman zaman sürpriz davranışlara yol açıyor. Kubernetes topluluğu bu soruna yeni bir dil icat ederek değil, mevcut YAML’ın daha dar ve tutarlı bir alt kümesini tanımlayarak yanıt veriyor: KYAML.

Bu yazıda KYAML’ın ne olduğunu, hangi problemleri çözdüğünü ve mevcut YAML dosyalarını KYAML biçiminde üretmenin yollarını kaynak belgeye sadık kalarak özetliyorum.

KYAML nedir?

KYAML, standart YAML’ın katı bir alt kümesi (ya da “lehçesi”) olarak tanımlanıyor. Yeni bir format veya yeni bir ayrıştırıcı getirmiyor; mevcut YAML ekosistemi tarafından olduğu gibi ayrıştırılabiliyor. Öneri, SIG CLI tarafından KEP 5295 kapsamında getirildi.

KYAML’ı yeni bir dilden çok, üzerinde uzlaşılmış bir yazım stili gibi düşünmek daha doğru. KYAML olarak geçerli her şey aynı zamanda geçerli YAML. Fark, yazarken yaptığınız seçimlerin daraltılmış olması.

Hangi sorunları çözüyor?

Standart YAML’ın bilinen bazı tuzakları var; JSON da bunlara alternatif olamıyor.

Boşluğa duyarlılık

YAML’da yapı girintiyle tanımlanır. Yanlış girintili bir dosya sözdizimsel olarak geçerli kalabilir ama amaçlanandan farklı bir nesneyi temsil eder. Bu durum, YAML bağlamının dışından girintiyi manipüle eden Helm gibi şablonlama araçlarında özellikle sorun çıkarır.

Sessiz tür dönüşümleri

YAML’da string tırnaklamak isteğe bağlıdır. Bazı string gibi görünen değerler uyarı verilmeden başka türlere dönüştürülür. Klasik örnek “Norway Bug” olarak bilinen durumdur:

country: NO

Standart YAML’da NO değeri "NO" string’i olarak değil, boolean false olarak ayrıştırılır.

JSON neden çözüm değil?

JSON yorum satırlarını desteklemez, sondaki virgüle izin vermez ve her anahtarın tırnak içinde olmasını gerektirir. Bu da onu manuel yapılandırma yazımı için elverişsiz kılar.

KYAML’ın kuralları

KYAML, yapı ve türleri açık hale getirerek bu problemleri şu şekilde ele alıyor:

  • Yapı için girintiye bağımlı değildir.
  • Değer string’lerini her zaman tırnak içine alır, sessiz tür dönüşümü olmaz.
  • Map ve struct’lar için her zaman {} kullanır.
  • Listeler için her zaman [] kullanır.
  • JSON’un aksine yorum ve sondaki virgüle izin verir.
  • Dosyaya --- başlığı ekler; böylece hem KYAML hem de JSON { ile başlamasına rağmen ilk bakışta ayırt edilir.

YAML terminolojisinde buna flow style deniyor; çoğunluğun kullandığı block style‘ın karşıtı. KYAML, JSON ile klasik YAML arasında bir noktada duruyor: varsayılan YAML’dan daha açık, JSON’dan daha okunabilir.

Aynı manifest, iki farklı stil

Aynı Pod manifestini iki biçimde görelim.

Standart YAML:

apiVersion: v1
kind: Pod
metadata:
name: my-pod
labels:
app: demo
spec:
containers:
- name: nginx
image: nginx:1.20

KYAML:

---
{
apiVersion: "v1",
kind: "Pod",
metadata: {
name: "my-pod",
labels: {
app: "demo",
},
},
spec: {
containers: [{
name: "nginx",
image: "nginx:1.20",
}],
},
}

Çift tırnaklı string değerler, her map’in etrafındaki süslü parantezler, listenin etrafındaki köşeli parantezler ve sondaki virgüller dikkat çekiyor. Ek sözdizimi, belge yapısını girintiye güvenmek yerine açıkça ortaya koyuyor.

YAML’ı KYAML olarak üretmenin yolları

Seçenek 1: kubectl -o kyaml

Kubernetes 1.34’ten itibaren kubectl, KYAML’ı yerel bir çıktı formatı olarak destekliyor.

# Kubernetes 1.35+ (beta; özellik varsayılan olarak açık, -o kyaml parametresi hâlâ gerekli)
kubectl get deployment my-app -o kyaml
# Kubernetes 1.34 (alpha, opt-in)
export KUBECTL_KYAML=true
kubectl get deployment my-app -o kyaml

Çıktıyı bir dosyaya kaydetmek için:

kubectl get deployment my-app -o kyaml > my-app.yaml

Kaynağa göre KYAML’ı varsayılan çıktı formatı yapma planı yok. Varsayılan olarak KYAML kullanmak isterseniz kuberc üzerinden yapılandırabilirsiniz:

# Kubernetes 1.36+
kubectl kuberc set --section defaults --command get --option output=kyaml
# Kubernetes 1.33–1.35 (alpha öneki hâlâ gerekli)
kubectl alpha kuberc set --section defaults --command get --option output=kyaml

Seçenek 2: Kubernetes’in yamlfmt aracı

sigs.k8s.io/yaml deposu, dosyaları KYAML’a çevirebilen bir yamlfmt aracı içeriyor.

Go ile kurulum:

go install sigs.k8s.io/yaml/yamlfmt@latest

Araç bir dosya üzerinde çalıştırıldığında KYAML çıktısını stdout‘a yazar. Bir dizin de kabul eder; bu durumda dizindeki her dosyayı dönüştürüp yazdırır. Dönüşümü kalıcı hale getirmek için çıktıyı dosyaya yönlendirmeniz gerekir.

yamlfmt -o=kyaml my-deployment.yaml

Tam dönüşüm yerine yalnızca fark göstermesini de isteyebilirsiniz:

yamlfmt -o=kyaml -d my-deployment.yaml

Seçenek 3: Google’ın yamlfmt aracı

Mevcut dosyaları dönüştürmek için Google’ın yamlfmt aracı, v0.21.0 sürümüyle özel bir kyaml formatlayıcısı ekledi.

Go ile veya releases sayfasından ikili dosya alarak kurabilirsiniz:

go install github.com/google/yamlfmt/cmd/yamlfmt@latest

Ayrıca bir pre-commit hook ve CI hatları için bir Docker imajı olarak da mevcut. Proje kökünüze şu .yamlfmt yapılandırmasını ekleyin:

formatter:
type: kyaml

Dosyanızı değiştirmeden çıktıyı önizlemek için:

yamlfmt -dry my-deployment.yaml

Uygulamak için:

yamlfmt my-deployment.yaml

Tüm dizini dönüştürmek için:

yamlfmt./k8s/

kyaml formatlayıcısı ek bir yapılandırma almaz ve varsayılan formatlayıcıyla seçenekleri paylaşmaz; ikisini karıştırmak hataya yol açar.

KYAML’a geçmeye değer mi?

Her geçerli KYAML dosyası aynı zamanda geçerli bir YAML dosyasıdır. Bu, mevcut araçlarınızın, kubectl‘ünüzün ve CI hatlarınızın hiçbir şey değiştirmesine gerek olmadığı anlamına gelir. KYAML’ı yalnızca 1.34+ değil, herhangi bir kubectl sürümüne girdi olarak da verebilirsiniz; sonuçta bu sadece YAML.

KYAML kesinlikle zorunlu değil. Block-style YAML yazmaya devam edebilirsiniz ve her şey çalışır. KYAML, özellikle bir ekipte veya daha büyük bir depoda yapılandırmaları daha az hataya açık ve daha tutarlı hale getirmek için bilinçli bir tercih. Bir göç değil, daha iyi bir alışkanlık olarak düşünmek yerinde olur.

İlgili İçerikler

  • Kubernetes v1.37 Ön İzleme: Kaldırılanlar ve Yenilikler
  • Declarative Workflows 1.0: Ajan Orkestrasyonu Artık YAML’da
  • Kubernetes AI Politikası: Açık Kaynak Sürdürücülüğü Yeni Çağda

Kaynaklar ve İleri Okuma

  • kubernetes.io
  • How to Pretty-Print Your Kubernetes YAML as KYAML and Why You’d Want To (kubernetes.io)
  • KEP 5295: KYAML önerisi
  • kubectl kuberc belgeleri
  • kubernetes-sigs/yaml deposu ve yamlfmt aracı
  • Google yamlfmt — yapılandırma, komut kullanımı, pre-commit, sürümler
  • StrictYAML: implicit typing sorunu ve Norway Bug
  • SIG CLI topluluk sayfası
  • İlgili yazı: Kubernetes 1.36 Ön İzleme: Neler Geliyor, Neler Gidiyor?
🤖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

Gateway API v1.6: TCPRoute ve UDPRoute Standard Oldu
Gateway API v1.6: TCPRoute ve UDPRoute Standard Oldu4 Ağu 2026
PowerToys 0.100: Shortcut Guide ve Command Palette Yenilendi
PowerToys 0.100: Shortcut Guide ve Command Palette Yenilendi16 Haz 2026
Windows Terminal Preview 1.25: Yeni Ayarlar ve Kitty Desteği
Windows Terminal Preview 1.25: Yeni Ayarlar ve Kitty Desteği18 Ağu 2026
Kubernetes v1.37 HPA ile İş Yüklerini Sıfıra İndiriyor
Kubernetes v1.37 HPA ile İş Yüklerini Sıfıra İndiriyor3 Eyl 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 kubectl -o kyaml Kubernetes manifest KYAML YAML biçimlendirme yamlfmt
Önceki yazı

Grok 4.6 GitHub Copilot’ta Kullanıma Sunuldu

Sonraki yazı

Visual Studio 18.9 ile Git Submodules Artık IDE’de

İlginizi Çekebilir

Blazor AI Components ile Agentic UI Oluşturmak
Aşkın KILIÇ 0

Blazor AI Components ile Agentic UI Oluşturmak

29/09/2026
MSSQL Extension v1.46: SQL Formatter GA ve Agent Skills
Aşkın KILIÇ 0

MSSQL Extension v1.46: SQL Formatter GA ve Agent Skills

28/09/2026
Agentic Autofix Copilot Memory ile Fix Kalıbını Öğreniyor
Aşkın KILIÇ 0

Agentic Autofix Copilot Memory ile Fix Kalıbını Öğreniyor

28/09/2026

2 comments

comments user
Tolga F. 15/08/2026 13:24

YAML formatlamasından kaynaklanan hataları ayıklamak gerçekten baş ağrısı, bu standardizasyon iyi bir fikir. Peki yamlfmt’i CI pipeline’a entegre etmek ne kadar zahmetli, deneyen var mı?

Yanıtla
comments user
Kaan T. 15/08/2026 15:04

YAML girintisiyle uğraşmaktan bıkan biri olarak KYAML’ı duymak sevindirici, bir deneyelim bakalım. Peki büyük ekiplerde herkesin bu standarda uymasını sağlamak pratikte nasıl işliyor, CI pipeline’a entegrasyon yaygın mı?

Bu arada şu yazınız da güzeldi: Copilot Talimat Dosyası Hijyeni: Neyi Yazmalı, Neyi Atmalı? — https://www.askinkilic.com.tr/copilot-talimat-dosyasi-hijyeni-neyi-yazmali-neyi-atmali/

Yanıtla

Yorum gönder Yanıtı iptal et

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • SQL Server ve Azure SQL: SQLCon Europe 2026 Yenilikleri
    29/09/2026 SQL Server ve Azure SQL: SQLCon Europe 2026 Yenilikleri
  • Blazor AI Components ile Agentic UI Oluşturmak
    29/09/2026 Blazor AI Components ile Agentic UI Oluşturmak
  • MSSQL Extension v1.46: SQL Formatter GA ve Agent Skills
    28/09/2026 MSSQL Extension v1.46: SQL Formatter GA ve Agent Skills
  • Agentic Autofix Copilot Memory ile Fix Kalıbını Öğreniyor
    28/09/2026 Agentic Autofix Copilot Memory ile Fix Kalıbını Öğreniyor
  • GitHub Copilot Canvas ile Kendi Akışınızı Tasarlayın
    28/09/2026 GitHub Copilot Canvas ile Kendi Akışınızı Tasarlayın
  • NL2SQL’de Asıl Soru: Prompt mu, Veritabanı mı?
    15/05/2026 NL2SQL’de Asıl Soru: Prompt mu, Veritabanı mı?
  • 25 Dolar Altında Yapay Zeka Uygulaması mı? İşte Nasıl Yapılır!
    10/03/2026 25 Dolara Yapay Zeka Uygulaması Nasıl Yapılır?
  • 2026-03-10_15-35-23
    10/03/2026 Microsoft 365 E7: Yapay Zeka ve Güvenlik Bir Arada
  • DevOps Güncellemeleri
    09/03/2026 Azure DevOps Server Şubat Güncellemesi: Güvenlik
  • Terminalde AI Ajanlarını Koddan Teste Taşımak: azd ile Gerçekten Yerel Deneyim
    18/03/2026 Terminalde AI Ajanlarını Koddan Teste Taşımak: azd ile Gerçekten Yerel Deneyim
  • 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 OpenAI azure sdk Azure SQL bulut bilişim CI/CD 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 Entra ID Microsoft Foundry otomasyon performans Pull Request RAG REST API SEO uyumlu 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ı 469 yazı 🏗️ Bulut Altyapı 378 yazı 🤖 Yapay Zeka 314 yazı 🔧 DevOps 260 yazı ☁️ Microsoft Azure 254 yazı 🔒 Güvenlik & Kimlik 214 yazı 🏢 Kurumsal Teknoloji 96 yazı 📊 Veri & Analitik 66 yazı 🐳 Konteyner & Kubernetes 61 yazı 📧 Microsoft 365 22 yazı 📁 Azure 1 yazı
Ara
Popüler
Yapay Zeka Azure Kubernetes DevOps Copilot Docker
Paylaş
WhatsApp
İçindekiler
    ← Grok 4.6 GitHub Copilot’...
    Visual Studio 18.9 ile Git Sub... →
    📩

    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