İç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 0 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

MSSQL v1.44: Kısayollar ve Yeni Sonuç Izgarası
MSSQL v1.44: Kısayollar ve Yeni Sonuç Izgarası15 Tem 2026
TypeScript 6.0 Yayınlandı: 7.0'a Geçiş Köprüsü
TypeScript 6.0 Yayınlandı: 7.0'a Geçiş Köprüsü7 Ağu 2026
Azure MCP Server .mcpb Paketi: Kurulum Artık Çocuk Oyuncağı
Azure MCP Server .mcpb Paketi: Kurulum Artık Çocuk Oyuncağı25 Nis 2026
Azure Developer CLI: Şubat 2026 Yenilikleri
Azure Developer CLI: Şubat 2026 Yenilikleri14 Mar 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

İlginizi Çekebilir

Grok 4.6 GitHub Copilot'ta Kullanıma Sunuldu
Aşkın KILIÇ 0

Grok 4.6 GitHub Copilot’ta Kullanıma Sunuldu

14/08/2026
GitHub Copilot Haftalık Sürüm Notları: 10 Ağustos
Aşkın KILIÇ 0

GitHub Copilot Haftalık Sürüm Notları: 10 Ağustos

14/08/2026
Copilot Talimat Dosyası Hijyeni: Neyi Yazmalı, Neyi Atmalı?
Aşkın KILIÇ 0

Copilot Talimat Dosyası Hijyeni: Neyi Yazmalı, Neyi Atmalı?

14/08/2026

Yorum gönder Yanıtı iptal et

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • KYAML Nedir ve Kubernetes YAML'ı Nasıl Biçimlendirir?
    15/08/2026 KYAML Nedir ve Kubernetes YAML’ı Nasıl Biçimlendirir?
  • Grok 4.6 GitHub Copilot'ta Kullanıma Sunuldu
    14/08/2026 Grok 4.6 GitHub Copilot’ta Kullanıma Sunuldu
  • GitHub Copilot Haftalık Sürüm Notları: 10 Ağustos
    14/08/2026 GitHub Copilot Haftalık Sürüm Notları: 10 Ağustos
  • Copilot Talimat Dosyası Hijyeni: Neyi Yazmalı, Neyi Atmalı?
    14/08/2026 Copilot Talimat Dosyası Hijyeni: Neyi Yazmalı, Neyi Atmalı?
  • GitHub Copilot Build Optimizasyonunda Netleşen Sonuçlar
    14/08/2026 GitHub Copilot Build Optimizasyonunda Netleşen Sonuçlar
  • 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ı
  • Azure MCP Server 2.0: Kendi Sunucunuzda Ajan Otomasyonu
    10/04/2026 Azure MCP Server 2.0: Kendi Sunucunuzda Ajan Otomasyonu
  • GitHub Copilot Cloud Agent İçin Runner Kontrolü: Kurumsal Düzen
    03/04/2026 GitHub Copilot Cloud Agent İçin Runner Kontrolü: Kurumsal Düzen
  • 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 Code Scanning’de Toplu Düzeltme: PR’lar Hızlandı
    07/04/2026 GitHub Code Scanning’de Toplu Düzeltme: PR’lar Hızlandı
  • 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

KYAML Nedir ve Kubernetes YAML'ı Nasıl Biçimlendirir?
Geliştirici Araçları Konteyner & Kubernetes

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

15/08/2026 Aşkın KILIÇ
Grok 4.6 GitHub Copilot'ta Kullanıma Sunuldu
Geliştirici Araçları Microsoft Azure Yapay Zeka

Grok 4.6 GitHub Copilot’ta Kullanıma Sunuldu

14/08/2026 Aşkın KILIÇ
GitHub Copilot Haftalık Sürüm Notları: 10 Ağustos
Bulut Altyapı Geliştirici Araçları Yapay Zeka

GitHub Copilot Haftalık Sürüm Notları: 10 Ağustos

14/08/2026 Aşkın KILIÇ
Copilot Talimat Dosyası Hijyeni: Neyi Yazmalı, Neyi Atmalı?
Geliştirici Araçları Yapay Zeka

Copilot Talimat Dosyası Hijyeni: Neyi Yazmalı, Neyi Atmalı?

14/08/2026 Aşkın KILIÇ
GitHub Copilot Build Optimizasyonunda Netleşen Sonuçlar
Bulut Altyapı Geliştirici Araçları

GitHub Copilot Build Optimizasyonunda Netleşen Sonuçlar

14/08/2026 Aşkın KILIÇ
Microsoft.Extensions.AI için Routing ve Failover
Bulut Altyapı Yapay Zeka

Microsoft.Extensions.AI için Routing ve Failover

14/08/2026 Aşkın KILIÇ
Gemini 3.7 Flash GitHub Copilot'ta Kullanıma Sunuldu
Geliştirici Araçları Microsoft Azure Yapay Zeka

Gemini 3.7 Flash GitHub Copilot’ta Kullanıma Sunuldu

13/08/2026 Aşkın KILIÇ
GitHub Secure Open Source Fund: 50 Projeden Güvenlik
Bulut Altyapı Geliştirici Araçları Yapay Zeka

GitHub Secure Open Source Fund: 50 Projeden Güvenlik

13/08/2026 Aşkın KILIÇ
Teams için Ajan Tasarımı: Grup Sohbetinde Gürültüyü Yönetmek
Geliştirici Araçları Microsoft Azure

Teams için Ajan Tasarımı: Grup Sohbetinde Gürültüyü Yönetmek

13/08/2026 Aşkın KILIÇ
Azure Content Understanding GPT-5 Serisi: Model Seçimi ve
Microsoft Azure Veri & Analitik Yapay Zeka

Azure Content Understanding GPT-5 Serisi: Model Seçimi ve

13/08/2026 Aşkın KILIÇ
Azure Content Understanding Ağustos 2026: CU 1.0 GA ve CU
Bulut Altyapı Yapay Zeka

Azure Content Understanding Ağustos 2026: CU 1.0 GA ve CU

13/08/2026 Aşkın KILIÇ
AI Katkıcılara Karşı Repo Kurallarını Kod Yanına Koymak
Geliştirici Araçları Yapay Zeka

AI Katkıcılara Karşı Repo Kurallarını Kod Yanına Koymak

12/08/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ı Azure azure app service Azure Cosmos DB Azure Developer CLI Azure DevOps Azure Functions Azure OpenAI azure sdk Azure SQL bulut bilişim C++ CI/CD copilot Copilot CLI DevOps DevSecOps 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 Microsoft Agent Framework Microsoft Azure Microsoft Foundry MSVC otomasyon performans Pull Request Python RAG SEO uyumlu verimlilik veri yönetimi Visual Studio 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ı 339 yazı 🏗️ Bulut Altyapı 280 yazı 🤖 Yapay Zeka 240 yazı 🔧 DevOps 198 yazı ☁️ Microsoft Azure 186 yazı 🔒 Güvenlik & Kimlik 161 yazı 🏢 Kurumsal Teknoloji 65 yazı 📊 Veri & Analitik 57 yazı 🐳 Konteyner & Kubernetes 47 yazı 📧 Microsoft 365 21 yazı 📁 Azure 1 yazı
Ara
Popüler
Yapay Zeka Azure Kubernetes DevOps Copilot Docker
Paylaş
WhatsApp
İçindekiler
    ← Grok 4.6 GitHub Copilot’...
    →
    📩

    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