Kubernetes 1.24 (Stargazer) güncellemesiyle neler değişti?  

 

Bugün bulut dağıtım süreçlerinin merkezinde konumlanan konteyner (kapsayıcı) yöneticisi Kubernetes, 2022'nin ilk güncellemesini mayıs ayının başında yayımladı. Peki bu güncellemeyle neler değişti?

Birçok modern bulut dağıtım projesinin kalbinde olan ve bugün alıştığımız internet fonksiyonlarını mümkün kılan açık kaynak kodlu konteyner yöneticisi Kubernetes, 2022'nin ilk güncellemesini mayıs ayının başında yayımladı. 1.24 sürüm numarasıyla yayımlanan bu versiyon, toplamda 46 geliştirme içeriyor. Google Cloud’un Türkiye’deki ilk partneri olan Global IT olarak bu yazıda kapsayıcı yönetiminde bir endüstri standardına dönüşen ve binlerce geliştirici tarafından kullanılan Kubernetes’in hayalci, hayalperest gibi anlamlarla da kullanılan ve aslında yıldız gözlemcisine karşılık gelen Stargazer güncellemesiyle ortaya çıkan yeniliklere odaklanacağız. 

Başlamadan önce, mikro hizmet, konteyner, Kubernetes nedir, ne işe yarar, Kubernetes nasıl kullanılır gibi sorulara şu yazımızda yanıt vermeye çalıştığımızı hatırlatmak isteriz. 

 

 

Kubernetes 1.24 güncellemesi neler içeriyor? 


Kubernetes’in yeni sürümünde 14 geliştirme kararlı hale getirilirken, 15 geliştirme beta sürümüne taşınıyor. 13 geliştirme için ise alfa testlerine başlanıyor. Birçok geliştiriciyi ilgilendiren bir başka konu ise kullanımdan kaldırılan güncellemeler olarak öne çıkıyor. Dilerseniz öne çıkan güncellemelere yakından bakalım.

 

 

Dockershim, kubelet'ten kaldırıldı


Bu konu ve kavramlar, ilk aşamada biraz karmaşık gelebilir. Bu güncellemeyi daha iyi anlayabilmek için öncelikle birkaç kavramın tanımına yer verelim:

Pod: Kubernetes ekosisteminde her bir konteyner “pod” olarak adlandırılır. 
Node (düğüm): Podların, yani konteynerlerin çalıştığı, bir ya da daha fazla kapsayıcıyı destekleyen alanlardır. İş yükleri, node’lar üzerinde yürütülür. 
Kapsayıcı çalışma zamanı (container runtime): Kapsayıcı çalışma zamanları, kodların çalışması için kümedeki her düğüme yüklenmesi gereken bileşendir. Kubernetes, containerd ve CRI-O isimli kapsayıcı çalışma zamanı bileşenlerini destekler. 
Kubelet: Kubelet, her düğümde çalışan birincil “düğüm aracısı” olarak tanımlanır. 
Docker: Docker, kapsayıcı yani konteyner yaklaşımının temellerinden biridir. İşletim sistemindeki kaynakları etkin ve verimli bir biçimde kullanabilmek için konteyner oluşturmaya yarayan bir yazılımdır. 
Dockershim: 1.24’ten önceki sürümlerin Docker Engine ile bağlantı kurmasına olanak tanıyan bileşendir. 

Bu kısa sözlüğü açıkladıktan sonra, kaldığımız yerden devam edelim. Dockershim’in kubelet’ten kaldırılması, artık geliştiricilerin Kubernetes’te kapsayıcı çalışma zamanları bileşeni olarak Dockershim kullanamaması anlamına geliyor. 1.24 sürümünden itibaren geliştiriciler, containerd veya CRI-O gibi desteklenen çalışma zamanlarından birini kullanabiliyor. Halihazırda çalışma zamanı için Docker Engine güvenen geliştiriciler ise cri-dockerd adı verilen, dockershim gibi bir başka bileşeni kullanabiliyor. 

Duyurulduğunda çok ses getiren bu değişiklik, aslında birçok Kubernetes kullanıcısını etkilemiyor. Zira Cloud Native ekosistemi, belirli bir kapsayıcı çalışma zamanına bağımlı kalmaktan kaçınmak için Açık Kapsayıcı Arayüzünü (CRI) kullanıyor. Çoğunlukla Kubernetes kümeler, ekosistemin halihazırda destek verdiği containerd ve cri-o çalışma zamanlarını kullanıyor. Dockershim’in kaldırılmasına ve bunun geliştiricileri nasıl etkileyeceğine dair açıklamalara şu sayfada yer veriliyor. 

Öte yandan Cloud Native Computing Foundation'dan Kat Casgrove, bu duyuru sırasında biraz daha şeffaf olmaları gerektiğini itiraf ediyor. Docker dendiğinde yazılımın tamamının ya da yazılımı geliştiren şirketin de anlaşılabildiğini belirten Casgrove, yalnızca Docker çalışma zamanı Dockershim’i kaldırdıklarını ifade ediyor. Kubernetes’in Docker’dan uzaklaşmadığını söyleyen Casgrove, “Dockershim’i kubelet’ten kaldırmak, topluluk, ekosistem, proje ve genel olarak açık kaynak kültürü için iyi olacak” ifadelerini kullanıyor. 

 

 

Sigstore ile yazılım tedarik zinciri güvenliği


Kubernetes geliştiricilerinin 2021 itibarıyla Kubernetes yazılım tedarik zinciri güvenliğini iyileştirmek için başladığı Yazılım Yapıları için Tedarik Zinciri Düzeyleri çalışmasının sonuçlarından biri olan Sigstore programı, Kubernetes güvenliği için “ileri doğru atılmış büyük bir adım” olarak tanımlanıyor. Yayın dosyalarını, kapsayıcı görüntülerini ve ikili dosyaları kriptografiyle imzalamayı kolaylaştıran güncelleme, yazılım tedarik zinciri güvenliğini iyileştiriyor. 

 

 

Yeni kubelet metriği: OOM


1.24 Stargazer güncellemesiyle kullanıma sunulan bir başka yenilik de birincil düğüm aracılarına, yani kubelet’e getirilen yeni bir metrik olarak öne çıkıyor. OOM metriği, küme operatörlerinin Kubernetes kümesinde çalışan her kapsayıcıda meydana gelen bellek yetersizliği olaylarını saymasına olanak tanıyor. Kubernetes ekosisteminde yazılımlar beklendiği gibi çalışmadığında söz konusu işlem sonlandırılıyor. Fakat bu çalışmamazlık durumunun esas sebebi kolay bulunamıyor. OOM metriğinin bu hataları daha ayrıntılı keşfetmeye olanak tanıması bekleniyor. 

 

 

Beta API’lar artık “varsayılan olarak kapalı”


Bugün Cloud Native Computing Foundation tarafından desteklenen Kubernetes’in geliştiricileri, beta API’ların varsayılan olarak kapalı olacağı güncellemeyi de 1.24 sürümünün merkezindeki geliştirmeler arasında sayıyor. Mevcut beta API’ları ve bu API’ların yeni sürümleri varsayılan olarak etkinleştirilmeye devam edilecek olsa da, 1.24 güncellemesinden sonra oluşturulan beta API’lar otomatik olarak kapalı değerlendirilecek. Yeni bir özellik ya da kullanımdan kaldırma olmayan bu güncelleme, Kubernetes ekibinin beta API’larını yönetme biçimindeki bir değişiklik olarak görülüyor. 

 

 

OpenAPI v3 desteği


OpenAPI v3 desteğini anlamak için API ve OpenAPI kavramlarına değinelim. Türkçe "uygulama program arayüzü" olarak çevrilebilen API, iki veya daha fazla yazılımın etkileşim kurmasına izin veren bir teknolojidir. Örneğin bir market teslimat uygulamasından  sipariş verdiğinizde bankanızın ödeme ekranına bağlanmanız, API üzerindeki etkileşimle mümkün olur.

OpenAPI, dünyanın herhangi bir yerinden bir yazılımcının API'ya erişerek entegrasyon gerçekleştirmesine olanak tanıyan ve şirketlerin günlük operasyonlarına farklı yazılımları entegre edebilmesine olanak tanıyan teknoloji olarak öne çıkıyor. Kubernetes 1.24, OpenAPI’ın üçüncü sürümüne beta desteği sunuyor.

 

 

Yük dengeleyici türü seçimi


Önceki sürümde de erişilebilir olan ve beta aşamasında test edilen yük dengeleyeci türü seçme özelliği, Stargazer güncellemesiyle tüm Kubernetes ekosisteminin kullanımına açılıyor. Bir yönetilen (managed) Kubernetes kümesinde (cluster) LoadBalancer adı verilen ve yük dengeleyici olarak Türkçeye çevrilebilen türde bir hizmet oluşturmak, hizmet sağlayıcının sorumluluğu sayılıyor. LoadBalancerClass geliştirmesiyle kullanıcılar, ne tür bir yük dengeleyici istediklerini belirleme olacağı buluyor. Bu güncellemenin yönetilen Kubernetes hizmetlerinin kullanıcıları için ağ oluşturmayı kolaylaştırması bekleniyor. 

 

 

Kubernetes 1.24 güncellemesi nasıl yorumlandı? 


ZDNet'in Kıdemli Konuk Editörü Steven Vaughan-Nichols, Kubernetes 1.24'ü "olağanüstü bir güncelleme" olarak tanımlıyor. İşletmelerin çoğunlukla yeni bir Kubernetes sürümüne geçmeden önce biraz beklemeyi tercih ettiğini belirten Nichols, bu güncelleme için bir istisna uygulanabileceğine de kanaat getiriyor. 

Mühendis Víctor Jiménez Cerrada ise özellikle dockershim’in kaldırılmasına referansta bulunarak bu containerd ya da CRI-O gibi çalışma zamanı sağlayıcılarına geçişin zahmetli, fakat elzem olduğunu düşünüyor. 

Kıdemli baş yazılım mühendisi Mrunal Patel, dockershim’in kaldırılmasından korkulmaması gerektiğini savunuyor. Patel’e göre geliştiricilerin daha yeni özellikleri benimsemede daha hızlı hareket etmelerini mümkün kılacak CRI tabanlı çalışma zamanı çağını başlatmaları gerekiyor. Geliştiricileri önerilen çalışma zamanı uygulamalarına geçmeye teşvik eden Patel, "önerilenlerden birine geçmeyenlerin güvenlik riski aldığını" düşünüyor. 

15 yıllık deneyimi, 3.300’ü aşkın tamamlanan projesi, buluta taşınan 700 referans müşterisi ve 90 bine yakın kullanıcısıyla dağıtımda yeni çağı Türkiye’deki işletmelere sunan Global IT olarak soruyoruz: 

Kubernetes 1.24 hakkında siz ne düşünüyorsunuz? Kubernetes’in “dünya çapında yüzlerce katılımcının ve binlerce son kullanıcının eseri” olduğunu ve logo ile ismin “her bir paydaşın gökyüzündeki bir yıldız olduğu fikrinden ilhamla” alındığını söylediği yeni sürümü hakkındaki görüşlerinizi bizimle paylaşır mısınız? 

Global IT Bilişim
Hizmetleri A.Ş.

Onsekiz İş Merkezi Ortaklar Caddesi
Bahçeler Sokak 18/4 Şişli 34394 İstanbul
+90 (212) 211 50 01
info@globalit.com.tr