kubernetes pods ~

İbrahim Yıldız
2 min readJan 26, 2025

Kubernetes pods ile alakalı tüm notlarımı ve komutları yazmayı planlıyorum umarım faydalı olur :)

bir önce ki yazımda kubernetes mimarisini yazdım okumak isterseniz :) https://medium.com/@ibrahimyldz11/kubernetes-architecture-1600ed370e80

Kubernetes’te oluşturulabilen en küçük birim Pod olarak adlandırılır. Podlar, bir veya daha fazla container barındırabilir ve her pod, kendine özgü bir IP adresine sahiptir. Podlar içindeki container’lar localhost üzerinden haberleşir. Bununla birlikte, izolasyonun sağlanması adına her podun kendi IP adresi bulunur.

Pod Oluşturma ve Yönetim Yöntemleri

Pod oluşturma işlemleri iki farklı yaklaşımla yapılabilir:

1. Imperative Yöntem (Komut Tabanlı)

Bu yöntemde komutlar kullanılarak podlar manuel olarak oluşturulur ve yönetilir. Örnek komutlar ve açıklamaları:

  • Pod oluşturma: Belirtilen imajı kullanarak bir pod oluşturur.
kubectl run ibrahim --image=nginx --restart=Never

Pod açıklamasını görüntüleme: Podun hangi API sürümünü ve özelliklerini kullandığını gösterir.

kubectl explain pods ibrahim

Podları listeleme: Mevcut podları listeler.

kubectl get pods

Geniş çıktı: Podların daha fazla detayını (IP, node, vs.) gösterir.
kubectl get pods -o wide

JSON formatında çıktı: Pod bilgilerini JSON formatında verir.
kubectl get pods -o json

Pod detaylarını görüntüleme: Belirtilen pod hakkında detaylı bilgi verir.
kubectl describe pods ibrahim

Pod loglarını görüntüleme: Podun loglarını gösterir.

Pod loglarını görüntüleme: Podun loglarını gösterir.

kubectl logs ibrahim

Gerçek zamanlı loglar: Podun loglarını anlık olarak takip eder.
kubectl logs -f ibrahim

Pod içinde komut çalıştırma: Belirtilen pod içinde komut çalıştırır.

kubectl exec firstpod --hostname
kubectl exec firstpod -- ls


Etkileşimli bash açma: Pod içinde bir bash terminali başlatır.
kubectl exec -it ibrahim bash

Pod silme: Belirtilen podu siler.

kubectl delete pods ibrahim

2. Declarative Yöntem (YAML Tabanlı)

Bu yöntemde bir YAML dosyası kullanılarak podun tanımı yapılır ve Kubernetes bu tanımı baz alarak gerekli işlemleri gerçekleştirir. Örnek bir YAML dosyası:

apiVersion: v1
kind: Pod
metadata:
name: ibrahim
labels:
app: frontend
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80

YAML ile bilgiler

apiVersion: v1          # Kullanılan API sürümü, burada Kubernetes'in v1 API'si kullanılıyor.
kind: Pod # Bu kaynak türünün ne olduğunu belirtir; burada bir Pod oluşturulacak.
metadata: # Podun meta bilgilerini içerir.
name: ibrahim # Podun adı, bu ad ile yönetilir ve sorgulanır.
labels: # Pod için etiketler, uygulama türünü belirtmek veya gruplandırma yapmak için kullanılır.
app: frontend # Bu etiket, Pod'un frontend uygulamasına ait olduğunu gösteriyor.
spec: # Podun spesifikasyonları (detaylı yapılandırması) burada tanımlanır.
containers: # Pod içinde çalışacak container'ların listesini belirtir.
- name: nginx # Container'ın adı, bu isimle diğer işlemler yapılabilir.
image: nginx:latest # Kullanılacak container imajı ve sürümü. Burada `nginx` imajının en son sürümü kullanılıyor.
ports: # Container içinde açılacak portları tanımlar.
- containerPort: 80 # Bu container'ın hangi port üzerinden hizmet vereceğini belirtir (HTTP için standart 80 portu kullanılıyor).

Pod oluşturma: YAML dosyasını kullanarak pod oluşturur.

kubectl apply -f ibrahim.yaml

Pod üzerinde düzenleme: Podun YAML dosyasını düzenlemenize olanak tanır.

kubectl edit pods ibrahim

--

--

No responses yet