Sobes.tech
Junior

Vai vienā podā var būt vairākas konteineru?

sobes.tech AI

Atbilde no AI

Jā, tas var būt. Tas ir bieži sastopama prakse Kubernetes.

Vairāki konteineri vienā podā parasti koplieto resursus (glabāšanas vietu, tīkla steku) un bieži tiek izmantoti palīguzdevumu veikšanai blakus galvenajam lietojumprogrammas konteineram (Sidecar modeļa piemērs).

Piemēri lietošanai:

  • Sidecar konteineri: Uzraudzība, žurnālu ierakstīšana, pakalpojumu tīkla proxy (piemēram, Envoy).
  • Ambasador konteineri: Proxy piekļuvei ārējiem pakalpojumiem.
  • Adapter konteineri: Palīgprocesu izvades normalizācija.

Konteineri podā vienmēr tiek plānoti uz tā paša mezgla (Node) un izmanto to pašu namespace IPC (starpprocesu komunikācijai), kas ļauj tiem sadarboties.

Piemērs ar diviem konteineriem podā (galvenā nginx lietojumprogramma un žurnālu ierakstīšanas sidecar konteineris):

// apiVersion - Kubernetes API versija
apiVersion: v1
// kind - objekta tips (šajā gadījumā Pod)
kind: Pod
// metadata - pod metadati (nosaukums, etiķetes utt.)
metadata:
  name: multi-container-pod
spec:
  // containers - saraksts ar konteineriem podā
  containers:
    // Pirmais konteineris - galvenā lietojumprogramma (nginx)
    - name: main-app
      image: nginx:latest
      ports:
        // atvērt portu 80
        - containerPort: 80
    // Otrais konteineris - sidecar žurnālu ierakstīšanai (fiktīvs piemērs)
    - name: log-sidecar
      image: busybox:latest
      args:
        // bezgalīga cilpa žurnāla simulācijai
        - /bin/sh
        - -c
        - while true; do echo "Logging from sidecar..."; sleep 5; done