BiSoft Logo

Hizmetler

Ürünler

Ortaklık

Blog

Turkish

Genel

K8s’ten K3s’e: Bildiklerinle Yeni Bir Dünya

DevOps yolculuğuma K8s ile başladım. O yüzden bu yazıyı okurken bir şeyi baştan bilmeni istiyorum: bu bir “K8s’i bırak, K3s’e geç” yazısı değil. K8s benim için hâlâ o ilk hoca gibi zorladı, ter döktürdü, ama bu işi bana öğreten oydu. Ona laf söyletmem :D

Bu yazı daha çok şununla ilgili: K8s’i çok iyi biliyorsun ama K3s’e ilk baktığında içinden şöyle geçti değil mi?

“Dur bakalım, bu iş bu kadar kolay olamaz. Bir bityeniği var.”

İyi haber: bit yok, yenik de yok. Ve daha da iyi haberi şu K8s’i bilmek, K3s’i öğrenmenin en kısa yolu. Yani bu yazı senin için kolay olacak, çünkü zaten en zor kısmı biliyorsun. Hadi başlayalım.

K3s Nedir? (Ve Neden İsminin Yarısı Eksik?)

Önce şu isim muhabbetini kapatalım çünkü herkes merak ediyor ama kimse sormuyor.

Kubernetes = K8s. Neden? Çünkü “K” ile “s” arasında 8 harf var (u-b-e-r-n-e-t-e). Klasik developer tembelliği, seviyoruz napalım…

K3s ise bilerek K8s’in yarısı olacak şekilde isimlendirilmiş. Yani “ben Kubernetes’im ama daha küçüğüm” mesajını isimle veriyorlar. Resmi bir açılımı yok, tamamen bir espri. İlk defa gördüğümde ben de “acaba K3s diye bir standart mı var” diye aradım, yoktu, boşuna uğraşma.

K3s’i Rancher (şimdi SUSE’nin altında) geliştirdi. Ve en önemli kısım şu: K3s tam teşekküllü, CNCF sertifikalı bir Kubernetes dağıtımıdır. Yani “Kubernetes’e benzeyen bir şey” değil, resmen Kubernetes’in kendisi. Aynı API, aynı kubectl, aynı YAML'ler. K8s'te öğrendiğin her şey burada birebir geçerli ki bu K3s'in kolaylığı değil, aslında K8s'in sağlam temelinin bir kanıtı.

Şu an Kubernetes v1.36.4 tabanlı sürümleri dönüyor, yani upstream Kubernetes ile dirsek dirseğe ilerliyor. Dinozor, tozlanmış bir proje değil.

Peki Bu Zayıflamayı Nasıl Başardı? (Mimari Açıdan)

İşte senin kafanı en çok karıştıracak ama aslında en tatlı kısım burası. Çünkü sen zaten K8s mimarisini biliyorsun, o yüzden farkları anlatınca kafanda oturacak.

Klasik K8s’i hatırla. Control plane’inde ne var?

  • kube-apiserver

  • etcd

  • kube-scheduler

  • kube-controller-manager

  • cloud-controller-manager

Her biri ayrı process, ayrı yonetim…Ve dikkat et ; bu bir tasarım kusuru değil, bir tasarım tercihi. K8s bu parçaları ayrı tutuyor ki her birini bağımsız ölçekleyebilesin, değiştirebilesin, dev ortamlarda ince ayar yapabilesin. Bu esneklik, K8s’i dünyanın en büyük sistemlerinin altına koyabilmenin bedeli ve gücü.

K3s ise farklı bir soru soruyor: “Ya bu esnekliğin tamamına ihtiyacım yoksa?” Ve bütün bu ekibi tek bir binary’nin içine tıkıştırıyor. Evet, doğru okudun. Tek. Binary. 70 MB’ın altında tek bir binaryiçinde containerd runtime, Flannel CNI, Traefik ingress controller ve Klipper load balancer’a kadar her şey dahil. ( Kulağa developerlara kolaylık sağlamak gibi geliyor dimi :DDD)

Yani K8s sana “her parçayı istediğin gibi diz” diyor; K3s ise “senin için mantıklı bir default hazırladım, istersen sonra değiştir” diyor. İkisi de geçerli felsefe sadece farklı ihtiyaçlara cevap veriyorlar.

En Belirgin Farklardan Biri: etcd Opsiyonel Oldu

K3s, tek node’lu kurulumlarda etcd yerine SQLite kullanıyor. Evet, o telefonundaki uygulamaların bile kullandığı basit SQLite. Tek node modunda varsayılan datastore SQLite oluyor.

Bu nasıl mümkün oluyor? K3s’in içinde Kine diye bir katman var (KINE = “Kine Is Not Etcd”, developer’lar isim konusunda hep aynı, biliyorsun ki). Kine, etcd API’sini taklit ederek arkada SQLite, MySQL, PostgreSQL gibi veritabanlarını kullanabilmeni sağlıyor. Yani Kubernetes “ben etcd ile konuşuyorum” sanıyor ama arkada başka bir şey var. Zekice bir çözüm.

Burada önemli bir not: etcd “yok olmadı”, opsiyonel hale geldi. Çok node’lu, yüksek erişilebilirlik (HA) istediğin ortamlarda embedded etcd’ye geçebiliyorsun. Yani K3s, etcd’nin güçlü olduğu senaryolarda yine etcd’yi kullanmana izin veriyor ; sadece “her durumda zorunlu” olmaktan çıkarıyor.

Server ve Agent (Master/Worker’ın Kılık Değiştirmiş Hali)

K8s’teki “control plane node” ve “worker node” ayrımını biliyorsun. K3s’te bunlar server ve agent olarak geçiyor.

  • Server node = control plane + datastore (master muadili)

  • Agent node = sadece workload çalıştıran (worker muadili)

İsimler değişmiş ama mantık birebir aynı. Yani K8s bilgin burada da cebinde duruyor.

Bir de son sürümlerde mimari daha da temizlenmiş. CNI başlangıcını Executor interface’inin doğrudan bir parçası yaparak, Flannel veya Kube-router gibi networking sağlayıcılarına olan “CLI flag hack’lerine” olan bağımlılığı azaltmışlar. Teknik ama güzel bir detay.

Ölçek Meselesi: Bu Ufaklık Ne Kadar Kaldırır?

Şimdi asıl merak ettiğin soruya gelelim. “Tamam güzel, hafif, hoş ama ben büyük ortamlara alışkınım, bununla ciddi iş yapılır mı?”

Önce donanım iştahına bakalım:

K3s bir agent node’da* 512 MB RAM kadar az bir kaynakla çalışabiliyor. Resmi dokümantasyona göre (Mayıs 2026 güncel), bir server node’u (control plane) uygulama yüklerini saymadan 2 GB RAM ve 2 CPU* çekirdeği istiyor.

Ama dürüst bir uyarı: 1 GB toplam RAM’e sahip donanımda yapılan testlerde, gerçek uygulama yükleri deploy edildiğinde K3s, k0s ve MicroK8s’in hepsinde kararsızlık görülmüş… hafif bir Kubernetes cluster’ı bile göz ardı edilemeyecek kadar control-plane kaynağı tüketiyor. Yani “Raspberry Pi’ye kurdum ama sürekli çöküyor” diyen biri olursan, suç k3s’te değil, o zavallı 1 GB RAM’de.

Peki Büyük Ortamlar İçin Uygun mu?

Kısa cevap: Evet ama nüanslı.

K3s’in DNA’sında “edge computing, IoT, geliştirme ortamları ve kaynak kısıtlı yerler” var. Raspberry Pi kümeleri, fabrikadaki bir kenar cihazı, uzaktaki bir şube, CI/CD ortamları, dev/test cluster’ları… buralarda k3s parlıyor.

Ama “büyük” derken ne kastettiğine bağlı:

  • Çok sayıda küçük cluster (edge senaryosu, her mağazada bir cluster gibi) → K3s mükemmel. Hafif, hızlı kurulur, otomatik yönetilir.

  • Tek dev cluster, yüzlerce node, ağır enterprise trafiği → İşte burası K8s’in evi. HA embedded etcd ile K3s de ciddi ortamlar kaldırıyor, çalışıyor da. Ama devasa ölçekte ekosistem, tooling ve topluluğun kolektif tecrübesi K8s tarafında daha derin. Bu senaryolarda K8s’in (ya da managed EKS/GKE/AKS’nin) neden var olduğunu bir kez daha anlıyorsun.

Özetle : İkisi de ölçeklenir, ama farklı ölçeklerde parlarlar. K3s bir cerrah bıçağı, K8s ise tam donanımlı bir ameliyathane. Hangisini istediğin, elindeki işe bağlı.

Artıları ve Eksileri (Dürüst Liste)

Böyle bir liste çıkarma ihtiyacı mimari tasarlayan her DevOps Mühendisinde görülür… Refleks.

Artıları:

  • Kurulum kolay. Tek komut, bir kahve, cluster ayakta.

  • Hafif. Kaynak kısıtlı her yerde koşar.

  • Batteries included. Traefik (ingress), Klipper (load balancer), local-path-provisioner (storage), CoreDNS hepsi hazır gelir.

  • Gerçek Kubernetes. kubectl'in, YAML'lerin, Helm chart'ların, operator'ların hepsi aynen çalışır. K8s bilgini olduğu gibi taşıyorsun.

  • Airgap (internetsiz) ortam desteği çok iyi. Fabrika, gemi, uzak lokasyon senaryoları için biçilmiş kaftan.

Eksileri:

  • Bazı varsayılanlar zorlayıcı olabilir. Traefik’i sevmiyorsan söküp NGINX koyman gerekir, ilk başta biraz “ama bu neden burada” dedirtir.

  • Çok büyük / çok karmaşık enterprise senaryolarda K8s’in yıllar içinde birikmiş “kanıtlanmış yolu” ve dev topluluğu daha güçlü bir destek sunuyor.

  • SQLite tek node’da güzel ama ciddi HA istiyorsan yine etcd’ye ya da harici DB’ye dönmen gerekiyor, o zaman “hafiflik” avantajı biraz azalıyor.

  • Bazı managed hizmetlerin otomasyonlarını (otomatik upgrade, entegre monitoring vs.) kendin kurman gerekiyor çünkü bu senin cluster’ın, senin sorumluluğun.

K8s ve K3s birbirinin rakibi değil. Aynı ailenin iki üyesi biri her senaryoya hazır, sınırsız esneklik sunan güç merkezi; diğeri o gücün fazla geldiği yerler için tasarlanmış, çevik ve hafif kardeşi.

İkisi de “Kubernetes”. İkisinde de aynı kubectl apply -f mutluluğunu yaşarsın. Fark, kaç tane hareketli parçayı senin yönetmen gerektiğinde ve senin işine hangisinin daha çok yakıştığında.

K3s, K8s’in yerine geçmek için değil, K8s’in fazla geldiği yerler için var. Biri diğerinden iyi değil; ikisi farklı işler için.

Ve şunu da unutma: K8s’i iyi biliyorsan, K3s’i öğrenmen 1–2 günlük iş. Çünkü öğrenecek yeni bir şey yok sadece, ihtiyacın olmadığında bir kenara koyabileceğin bir sürü karmaşıklık var. O ilk hocanın sana öğrettiği her şey, burada da yanında :))


Kaynak: https://medium.com/@oktayca/k8sten-k3s-e-bildiklerinle-yeni-bir-d%C3%BCnya-fdca91287643

250'den fazla müşterimize katılın

İster uzman danışmanlık, ister özel yazılım, ister kapsamlı veri çözümleri arıyor olun, BiSoft yanınızda. Hedeflerinize nasıl katkı sağlayabileceğimizi konuşalım.

250'den fazla müşterimize katılın

İster uzman danışmanlık, ister özel yazılım, ister kapsamlı veri çözümleri arıyor olun, BiSoft yanınızda. Hedeflerinize nasıl katkı sağlayabileceğimizi konuşalım.

250'den fazla müşterimize katılın

İster uzman danışmanlık, ister özel yazılım, ister kapsamlı veri çözümleri arıyor olun, BiSoft yanınızda. Hedeflerinize nasıl katkı sağlayabileceğimizi konuşalım.

İş büyümesi ve verimliliği için akıllı veri çözümleri

Şirket

Hizmetler

Ürün

Vispeahen

BFM

BFM4Patroni

Daha fazla içerik