0Pricing
Kubernetes Basics · Ders

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 Kubernetes Basics 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, Kubernetes Basics öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Kubernetes Basics 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 Yaşam Döngüsü ve Durumları — resim 1

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: 80

Durumunu 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          5s

ErrImagePull, 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: 80

Dağı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          10s

READY 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          12s

my-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 Kubernetes Basics kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Kubernetes Basics 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. Kubernetes Basics 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.

Kubernetes Basics öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Kubernetes Basics, 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 Kubernetes Basics dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Kubernetes Basics 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

  1. Pod'lar: En Küçük Birim
  2. Pod Yaşam Döngüsü ve Durumları
  3. Çok Kapsayıcılı Pod'lar (Yan Kapsayıcılar)
  4. Başlatma Konteynerleri ve Başlangıç Sıralaması
← Kubernetes Basics Sayfasına Dön