0Pricing
Docker & DevOps Fundamentals · Ders

Pod'lar: En Küçük Birimler

Kubernetes'in temel yapı taşları olan Pod'ları ve bunları nasıl tanımlayıp yöneteceğinizi öğrenin.

Pod'lar: En Küçük Birimler, CoddyKit'te ücretsiz bir Docker & DevOps Fundamentals 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, Docker & DevOps Fundamentals öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Docker & DevOps Fundamentals kursu toplamda 4 dersten oluşur.

Kubernetes Pod'u Nedir?

Kubernetes'te dağıtabileceğiniz en küçük ve en temel birim Pod'dur. Pod'u, bir veya daha fazla kapsayıcı barındıran tek bir "ev" gibi düşünebilirsiniz.

Pod'lar, kapsayıcıların üzerinde bir soyutlama katmanı oluşturur. Kümenizde çalışan bir süreci temsil eder; uygulama kapsayıcılarını, depolama kaynaklarını, benzersiz ağ IP adresini ve kapsayıcıların nasıl çalışacağını belirleyen seçenekleri bir arada kapsar.

Pod'lar: En Küçük Birimler — resim 1

Pod ve Kapsayıcı: Fark Nedir?

"Zaten kapsayıcılarım varsa neden Pod'a ihtiyacım var?" diye düşünebilirsiniz. Temel fark şudur:

  • Bir Kapsayıcı (Docker kapsayıcısı gibi), bir uygulama ile bağımlılıklarının paketidir.
  • Bir Pod, bir veya daha fazla kapsayıcıyı saran ve onlara paylaşılan kaynaklar ile tek bir ağ kimliği sağlayan Kubernetes soyutlamasıdır.

Kapsayıcı gerçekten çalıştırılabilir olan şeyken Pod, Kubernetes'in bu çalıştırılabilir öğeleri yönetme ve düzenleme biçimidir.

Pod'lar Neden Kullanılır?

Pod'lar, aşağıdakiler gibi birçok önemli avantaj sunar:

  • Paylaşılan Ağ Ad Alanı: Bir Pod içindeki tüm kapsayıcılar aynı IP adresini ve ağ bağlantı noktalarını paylaşır. Birbirleriyle localhost kullanarak iletişim kurabilirler.
  • Paylaşılan Depolama: Pod'lar depolama birimlerini paylaşabilir; böylece aynı Pod içindeki kapsayıcılar ortak verilere erişebilir.
  • Aynı Konumda Çalıştırma ve Birlikte Zamanlama: Birlikte yakın çalışması gereken kapsayıcıların (örneğin bir uygulama ile günlük kaydı aracısının) aynı düğümde çalışması garanti edilebilir ve bu kapsayıcılar her zaman birlikte zamanlanır.

Pod Tanımının Yapısı

Pod'lar YAML yapılandırma dosyaları kullanılarak tanımlanır. Karşılaşacağınız temel bileşenler şunlardır:

  • apiVersion: Kubernetes API sürümünü belirtir (ör. v1).
  • kind: Kubernetes nesnesinin türüdür; burada Pod olur.
  • metadata: Pod'un name ve labels değerleri gibi bilgileri içerir.
  • spec: Çalıştırılacak containers, volumes ve diğer ayarlar dâhil olmak üzere Pod için istenen durumu belirtir.

Tek Kapsayıcılı Pod Tanımlama

Çoğu Pod tek bir kapsayıcı içerir. Bu, basit uygulamalar için yaygın bir yaklaşımdır. Aşağıda Nginx web sunucusu çalıştıran bir Pod için temel bir YAML tanımı verilmiştir:

apiVersion: v1
kind: Pod
metadata:
  name: my-nginx-pod
  labels:
    app: webserver
spec:
  containers:
  - name: nginx-container
    image: nginx:latest
    ports:
    - containerPort: 80

İlk Pod'unuzu Dağıtma

Bir YAML dosyasından Pod oluşturmak için kubectl apply komutunu kullanırsınız. Bu komut, tanımınıza göre kaynakları oluşturmasını veya güncellemesini Kubernetes'e bildirir.

Önceki Nginx Pod tanımını nginx-pod.yaml olarak kaydettiğinizi varsayalım. Şöyle dağıtabilirsiniz:

  • kubectl apply -f nginx-pod.yaml

Kubernetes daha sonra bu Pod'un çalışan düğümlerinden birinde çalışmasını zamanlar.

Pod'ları İnceleme: Get ve Describe

Dağıtım tamamlandıktan sonra Pod'larınızın durumunu kontrol etmek isteyeceksiniz. İşte iki temel kubectl komutu:

  • kubectl get pods: Geçerli ad alanındaki tüm Pod'ları listeler ve adlarını, durumlarını ve düğümlerini gösterir.
  • kubectl describe pod <pod-name>: Belirli bir Pod hakkında olaylar, kapsayıcı durumu ve atanmış kaynaklar dâhil ayrıntılı bilgi sağlar.

Bu komutlar izleme ve sorun gidermede büyük önem taşır.

Çok Kapsayıcılı Pod'lar: Yan Arabalar

Tek kapsayıcılı Pod'lar yaygın olsa da bazı durumlarda çok kapsayıcılı Pod'lar avantaj sağlar. Bunun klasik bir örneği Yan Araba Deseni'dir.

Yan araba kapsayıcısı, aynı Pod içinde ana uygulama kapsayıcınızla birlikte çalışır ve şu yardımcı görevleri gerçekleştirir:

  • Günlük kaydı ve izleme aracısı çalıştırma
  • Veri eşitleme
  • Ağ trafiğini vekil olarak yönlendirme

Pod'un ağını ve depolamasını paylaşmaları, iletişimi verimli hâle getirir.

Örnek: Çok Kapsayıcılı Pod

Aşağıda çok kapsayıcılı bir Pod örneği verilmiştir. Bu Pod'da bir Nginx web sunucusu ve günlükleri paylaşılan bir birime yazan bir busybox yan araba kapsayıcısı bulunur.

apiVersion: v1
kind: Pod
metadata:
  name: multi-container-pod
spec:
  volumes:
  - name: shared-log-volume
    emptyDir: {}
  containers:
  - name: web-server
    image: nginx:latest
    ports:
    - containerPort: 80
    volumeMounts:
    - name: shared-log-volume
      mountPath: /var/log/nginx
  - name: log-writer
    image: busybox:latest
    command: ["/bin/sh", "-c", "while true; do echo 'Hello from sidecar!' >> /var/log/app.log; sleep 5; done"]
    volumeMounts:
    - name: shared-log-volume
      mountPath: /var/log/app

Pod Bilginizi Sınayın

Kubernetes Pod'ları hakkında aşağıdaki ifadelerden hangisi DOĞRUDUR?

Özet: Pod'lar - Temel Birim

Kümedeki uygulamalarınızın temel yapı taşları olan Kubernetes Pod'larını öğrendiniz.

  • Pod'lar bir veya daha fazla kapsayıcıyı kapsar ve onlara paylaşılan kaynaklar sağlar.
  • Paylaşılan ağ ve depolama sunar, ilişkili kapsayıcıların aynı konumda çalışmasını garanti ederler.
  • Pod'ları YAML kullanarak tanımlar ve kubectl apply ile dağıtırsınız.
  • kubectl get pods ve kubectl describe pod komutları onları izlemenize yardımcı olur.

Sırada kümenizle etkileşim kurmak için daha fazla kubectl komutunu inceleyeceğiz!

Sıkça Sorulan Sorular

“Pod'lar: En Küçük Birimler” dersi ücretsiz mi?

Evet — “Pod'lar: En Küçük Birimler” 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 Docker & DevOps Fundamentals kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Docker & DevOps Fundamentals kursu toplamda 4 dersten oluşur.

“Pod'lar: En Küçük Birimler” dersinde ne öğreneceğim?

Kubernetes'in temel yapı taşları olan Pod'ları ve bunları nasıl tanımlayıp yöneteceğinizi öğrenin. Docker & DevOps Fundamentals 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.

Docker & DevOps Fundamentals öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Docker & DevOps Fundamentals, 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'lar: En Küçük Birimler” 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 Docker & DevOps Fundamentals dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Docker & DevOps Fundamentals 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. Kubernetes Mimarisi
  2. Pod'lar: En Küçük Birimler
  3. Temel kubectl Komutları
  4. Düzenleme için Ad Alanları ve Etiketler
← Docker & DevOps Fundamentals Sayfasına Dön