Sobes.tech
Junior

Бир поддо бир нече контейнер болушу мүмкүнбү?

sobes.tech AI

AIден жооп

Ооба, мүмкүн. Бул Kubernetesте кеңири колдонулган практика.

Бир нече контейнер бир поддо адатта ресурстарды бөлүшөт (сактоо жайы, тармак стек) жана көбүнчө негизги колдонмо контейнеринин жанында жардамчы милдеттерди аткаруу үчүн колдонулат (Sidecar үлгүсү).

Колдонуу мисалдары:

  • Sidecar контейнерлери: Мониторинг, журнал жазуу, кызмат тору прокси (мисалы Envoy).
  • Амбасадор контейнерлери: Тышкы кызматтарга кирүү үчүн прокси.
  • Адаптер контейнерлери: Жөмөлөөнүн чыгышын нормалдаштыруу.

Поддогу контейнерлер дайыма бир эле түйүндө (Node) пландаштырылат жана IPC (ара-иш-ара байланыш) үчүн бир эле namespace колдонушат, бул алардын бири-бири менен өз ара аракеттенүүсүнө мүмкүндүк берет.

Ики контейнерлүү поддун манифести мисалы (негизги nginx колдонмосу жана журнал жазуу үчүн sidecar контейнер):

// apiVersion - Kubernetes API версиясы
apiVersion: v1
// kind - объекттин түрү (бул учурда Pod)
kind: Pod
// metadata - поддун метадаты (аты, белгилери ж.б.)
metadata:
  name: multi-container-pod
spec:
  // containers - поддогу контейнерлердин тизмеси
  containers:
    // Биринчи контейнер - негизги колдонмо (nginx)
    - name: main-app
      image: nginx:latest
      ports:
        // 80 портун ачуу
        - containerPort: 80
    // Экинчи контейнер - журнал жазуу үчүн sidecar (жасалма мисал)
    - name: log-sidecar
      image: busybox:latest
      args:
        // журнал жазууну симуляциялоо үчүн эч качан токтобогон цикл
        - /bin/sh
        - -c
        - while true; do echo "Logging from sidecar..."; sleep 5; done