Sobes.tech
Junior

Bir podda bir nechta konteyner bo'lishi mumkinmi?

sobes.tech AI

AIdan javob

Ha, bo'lishi mumkin. Bu Kubernetesda keng tarqalgan amaliyot.

Bir nechta konteynerlar odatda resurslarni (saqlash joyi, tarmoq yoyi) bo'lishadi va ko'pincha asosiy ilova konteyneri yonida yordamchi vazifalarni bajarish uchun ishlatiladi (Sidecar naqsh).

Foydalanish misollari:

  • Sidecar konteynerlar: Monitoring, log yozish, service mesh proksi (masalan, Envoy).
  • Ambassador konteynerlar: Tashqi xizmatlarga kirish uchun proksi.
  • Adapter konteynerlar: Yordamchi jarayonlarning chiqishini normallashtirish.

Poddagi konteynerlar har doim bir xil tugunda rejalashtiriladi va IPC (o'rtasidagi jarayonlararo aloqa) uchun bir xil namespace'dan foydalanadi, bu ular o'rtasida muloqot qilish imkonini beradi.

Ikki konteynerli pod manifestining misoli (asosiy nginx ilovasi va log yozish uchun sidecar konteyneri):

// apiVersion - Kubernetes API versiyasi
apiVersion: v1
// kind - ob'ekt turi (bu holatda Pod)
kind: Pod
// metadata - podning metama'lumotlari (ism, etiketlar va boshqalar)
metadata:
  name: multi-container-pod
spec:
  // containers - pod ichidagi konteynerlar ro'yxati
  containers:
    // Birinchi konteyner - asosiy ilova (nginx)
    - name: main-app
      image: nginx:latest
      ports:
        // 80 portni ochish
        - containerPort: 80
    // Ikkinchi konteyner - log yozish uchun sidecar (fiktiv misol)
    - name: log-sidecar
      image: busybox:latest
      args:
        // log yozishni simulyatsiya qilish uchun doimiy sikl
        - /bin/sh
        - -c
        - while true; do echo "Logging from sidecar..."; sleep 5; done