📦 Temel Kubernetes Kavramları

Temel Kubernetes Kavramları: kubectl apply → Pod Running — Cluster Yolculuğu "▶ kubectl apply" butonuna bas: YAML dosyasının kubectl'den API Server'a, etcd'ye, Scheduler'a ve Nod

kubectl apply → Pod Running — Cluster Yolculuğu

"▶ kubectl apply" butonuna bas: YAML dosyasının kubectl'den API Server'a, etcd'ye, Scheduler'a ve Node'a uzanan yolculuğunu adım adım izle. Java'daki deploy pipeline analojisi sağda.

Pod — En Küçük Birim

Pod, nakliye container'ının ta kendisidir (fiziksel kutu, Docker kavramı değil) — Docker container ise içine paketlenen yüktür. Genellikle bir Pod tek bir container'ı sarar, ama ağ ve depolama paylaşması gereken birden fazla container'ı da barındırabilir — aynı kutuda yolculuk eden bir ana uygulama ve bir loglama sidecar gibi. Peki Kubernetes neden Docker container'larını doğrudan zamanlamak yerine onları ekstra bir katmana (Pod) sarıyor? Çünkü bazı şeylerin gerçekten birlikte zamanlanması, ağa bağlanması ve ölçeklenmesi gerekir tek bir atomik birim olarak — logları gönderen bir sidecar'ın, logladığı uygulamadan farklı bir node'da olmasının hiçbir anlamı yoktur. Bu, bir Java servisinin sıkı sıkıya bağlı yardımcı thread'lerini ayrı, bağımsız zamanlanan servisler olarak deploy etmek yerine tek bir process içinde bir araya getirmesiyle aynı mantıktır. QA açısından önemli bir tuzak: AYNI Pod İÇİNDEKİ container'lar localhost networking'i paylaşır, yani "her container'ın erişilebilir olması için kendi service'i gerekir" varsayan bir test, gereksiz Service nesneleri yazar — ayrıca bir Pod restart'ı, sadece çöken container'ı değil, içindeki TÜM container'ları birlikte öldürür.

Tasarım gereği geçici

Label ve Selector'lar

Micro Lab: Kubernetes YAML manifest repair

TODO satirini beklenen cozumdeki kritik satirla degistir. Bu gercek runtime degil; amac dogru yapinin yazilmasini kontrollu olarak pekistirmek.

Bu Minimal YAML Uygulanınca Cluster'da Tam Olarak Ne Olur?

apiVersion + kind tanımlar

API Server bu iki alana bakarak isteği HANGİ controller'a yönlendireceğini belirler — burada basitçe "Pod".

labels gelecekteki keşfi sağlar

`app: my-app` etiketi şu an hiçbir şey yapmaz ama bir Service'in bu pod'u BULMASININ TEK yoludur.

image çekilir ve çalıştırılır