Pod Yaşam Döngüsü ve Durumları
Bir Pod'un geçtiği çeşitli aşamaları ve durumunu nasıl izleyeceğinizi anlayın.
Pod Yaşam Döngüsü ve Durumları, CoddyKit'te ücretsiz bir DevOps Bootcamp dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, DevOps Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
Pod'lar: Bir Yaşam Yolculuğu
Pod'lar statik değildir; tıpkı bir yolculuk gibi farklı aşamalardan geçer. Bu "yaşam döngüsünü" anlamak, uygulamalarınızı Kubernetes'te etkili şekilde yönetmenin anahtarıdır.
Bu bilgi, uygulamanızın sağlıklı olup olmadığını, başlatılmakta olduğunu veya bir sorunla karşılaşıp karşılaşmadığını anlamanıza yardımcı olur.

Pod'ların Beş Yaşam Aşaması
Kubernetes, Pod'ları beş ana aşamaya ayırır. Bu aşamalar, bir Pod'un mevcut durumuna üst düzey bir genel bakış sunar:
- Pending: Pod Kubernetes tarafından kabul edilmiştir ancak kapsayıcıları henüz başlatılmamıştır.
- Running: Pod'daki en az bir kapsayıcı çalışıyor veya başlatılıyor durumdadır.
- Succeeded: Pod'daki tüm kapsayıcılar başarıyla tamamlanmış ve yeniden başlatılmayacaktır.
- Failed: Tüm kapsayıcılar sonlanmış ve en az biri başarısız olmuştur (ör. sıfır olmayan bir kodla çıkmıştır).
- Unknown: Genellikle iletişim sorunları nedeniyle Pod'un durumu belirlenememiştir.
1. Aşama: Pending Pod'lar
Bir Pod, Kubernetes API sunucusu tarafından kabul edildiğinde ancak kapsayıcılarından biri veya daha fazlası henüz oluşturulmadığında ya da yapılandırılmadığında Pending aşamasındadır.
Yaygın nedenler şunlardır:
- Kapsayıcı imajı hâlâ indiriliyordur.
- Kümede Pod'u zamanlamak için yeterli kaynak (CPU/bellek) yoktur.
- Birimler hâlâ sağlanıyor veya bağlanıyordur.
Pending Bir Pod'u Gözlemleme
Bir örneğe bakalım. Var olmayan bir imajla Pod dağıtmaya çalışırsanız Pod 'Pending' durumunda takılabilir veya bir imaj çekme hatası gösterebilir.
Örnek bir Pod tanımı şöyledir:
apiVersion: v1
kind: Pod
metadata:
name: pending-pod-demo
spec:
containers:
- name: my-container
image: non-existent-image:latest
ports:
- containerPort: 80Durumunu kontrol etmek için kubectl get pod komutunu kullanırsınız. Şuna benzer bir çıktı görebilirsiniz:
$ kubectl get pod pending-pod-demo
NAME READY STATUS RESTARTS AGE
pending-pod-demo 0/1 ErrImagePull 0 5sErrImagePull, imajın alınamadığını ve bu nedenle Pod'un Running durumuna ulaşamadığını gösterir.
2. Aşama: Çalışan Pod'lar
Running aşaması, Pod'un bir düğüme bağlandığı ve tüm kapsayıcılarının başarıyla oluşturulduğu anlamına gelir. En az bir kapsayıcı çalışıyor ya da başlatılma veya yeniden başlatılma sürecindedir.
Running durumundaki bir Pod'un, içindeki uygulamanın otomatik olarak sağlıklı veya tamamen işlevsel olduğu anlamına gelmediğini unutmamak önemlidir. Bu yalnızca kapsayıcıların etkin olduğu anlamına gelir.
Bir Pod'u Çalışır Duruma Getirme
Aşağıda Nginx web sunucusu için standart bir Pod tanımı yer almaktadır. Bunu uyguladıktan sonra Pod'unuz kısa süre içinde 'Running' durumuna geçmelidir.
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80Dağıtım yapıldıktan sonra kubectl get pod komutunu kullanırsanız şu çıktıyı görürsünüz:
$ kubectl get pod nginx-pod
NAME READY STATUS RESTARTS AGE
nginx-pod 1/1 Running 0 10sREADY sütunundaki 1/1 değeri, tanımlanan bir kapsayıcıdan birinin hazır olduğunu doğrular.
3. ve 4. Aşamalar: Başarılı ve Başarısız
Bu aşamalar, bir Pod için sonlanma durumlarını temsil eder:
- Succeeded: Pod içindeki tüm kapsayıcılar başarıyla sonlandığında ve yeniden başlatılmayacağında Pod bu aşamaya geçer. Bu durum, tek seferlik görevleri veya toplu işleri çalıştıran Pod'lar için tipiktir.
- Failed: Pod içindeki tüm kapsayıcılar sonlandığında ve en az bir kapsayıcı başarısız olarak sonlandığında (örneğin, sıfır olmayan bir durum koduyla çıktığında) Pod Failed aşamasındadır.
Bunları anlamak, işlerin tamamlanmasını veya uygulama hatalarını teşhis etmenize yardımcı olur.
Gizemli Unknown Aşaması
Unknown aşaması, Pod'un durumunun belirlenemediği anlamına gelir. Bu nadir görülen ancak kritik bir aşamadır.
Bu durum genellikle Pod'un çalıştığı düğümdeki Kubelet'in (aracının) Kubernetes API sunucusuyla iletişim kurmayı bırakmasıyla ortaya çıkar. Bunun nedeni bir ağ sorunu, çöken bir Kubelet veya düğümün kendisiyle ilgili bir problem olabilir.
Pod'lar İçindeki Kapsayıcı Durumları
Pod'ların genel aşamaları olsa da bir Pod'un içindeki kapsayıcıların da daha ayrıntılı kendi durumları vardır. Bu durumlar, Pod'un genel aşamasını doğrudan etkiler:
- Waiting: Kapsayıcı şu anda başlatılmayı beklemektedir. Bunun nedenleri arasında görüntünün çekilmesi, kaynak ayrılması veya başlatma kapsayıcılarının tamamlanmasının beklenmesi bulunur.
- Running: Kapsayıcı herhangi bir sorun olmadan etkin biçimde çalışmaktadır.
- Terminated: Kapsayıcı çalışmasını tamamlamıştır. Başarılı olmuş veya başarısız olmuş olabilir.
Pod Durumu Denetimi
Yeni bir Pod dağıttığınızı düşünün. kubectl get pod my-app komutunu çalıştırıyor ve aşağıdaki çıktıyı görüyorsunuz:
NAME READY STATUS RESTARTS AGE
my-app 0/1 Pending 0 12smy-app Pod'unun 0/1 hazır kapsayıcıyla Pending durumunda olmasının en olası nedeni nedir?
Yaşam Döngüsünün Özeti ve Sonraki Adımlar
Kubernetes Pod'larının farklı aşamalardan geçtiğini öğrendiniz: Pending, Running, Succeeded, Failed ve Unknown. Bu aşamalar, bir Pod'un çalışma durumu hakkında üst düzey bilgiler sağlar.
Ayrıca Pod'un genel aşamasına katkıda bulunan tek tek kapsayıcı durumlarına (Waiting, Running, Terminated) da değindik. Bu durumları kubectl get pod ve kubectl describe pod ile izlemek (bunları ileride daha ayrıntılı inceleyeceksiniz), uygulamanızın sağlığını anlamak açısından çok önemlidir.
Sırada, sidecar kalıbını kullanarak tek bir Pod içinde birden çok yan yana yerleştirilmiş kapsayıcının nasıl çalıştırılacağını inceleyerek gelişmiş Pod kalıplarına geçeceğiz!
Sıkça Sorulan Sorular
“Pod Yaşam Döngüsü ve Durumları” dersi ücretsiz mi?
Evet — “Pod Yaşam Döngüsü ve Durumları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve DevOps Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
“Pod Yaşam Döngüsü ve Durumları” dersinde ne öğreneceğim?
Bir Pod'un geçtiği çeşitli aşamaları ve durumunu nasıl izleyeceğinizi anlayın. DevOps Bootcamp ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
DevOps Bootcamp öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te DevOps Bootcamp, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Pod Yaşam Döngüsü ve Durumları” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu DevOps Bootcamp dersinde kod yazıp çalıştırabilir miyim?
Evet. Her DevOps Bootcamp dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Pod'lar: En Küçük Birim
- Pod Yaşam Döngüsü ve Durumları
- Çok Kapsayıcılı Pod'lar (Yan Kapsayıcılar)
- Başlatma Konteynerleri ve Başlangıç Sıralaması