Sobes.tech
Junior

Bir podda birden fazla konteyner olabilir mi?

sobes.tech yapay zeka

AI'dan gelen yanıt

Evet, olabilir. Bu, Kubernetes'te yaygın bir uygulamadır.

Bir pod içindeki birkaç konteyner genellikle kaynakları (depolama alanı, ağ yığını) paylaşır ve genellikle ana uygulama konteynerinin yanında yardımcı görevler için kullanılır (Sidecar deseni).

Kullanım örnekleri:

  • Sidecar konteynerleri: İzleme, günlük kaydı, hizmet ağı proxy'si (örneğin Envoy).
  • Elçi konteynerleri: Dış hizmetlere erişim için proxy.
  • Adaptör konteynerleri: Yardımcı süreçlerin çıktısını normalize etme.

Pod içindeki konteynerler her zaman aynı düğüme planlanır ve IPC (ara işlem iletişimi) için aynı namespace'i kullanır, bu da birbirleriyle etkileşim kurmalarını sağlar.

İki konteynerli bir pod manifest örneği (ana uygulama nginx ve günlük kaydı için sidecar konteyneri):

// apiVersion - Kubernetes API sürümü
apiVersion: v1
// kind - nesne türü (bu durumda Pod)
kind: Pod
// metadata - pod'un metadata'sı (isim, etiketler vb.)
metadata:
  name: multi-container-pod
spec:
  // containers - pod içindeki konteynerlerin listesi
  containers:
    // Birinci konteyner - ana uygulama (nginx)
    - name: main-app
      image: nginx:latest
      ports:
        // 80 numaralı portu 
        - containerPort: 80
    // İkinci konteyner - günlük kaydı için sidecar (örnek)
    - name: log-sidecar
      image: busybox:latest
      args:
        // günlük kaydı simüle etmek için sonsuz döngü
        - /bin/sh
        - -c
        - while true; do echo "Logging from sidecar..."; sleep 5; done