Sobes.tech
Junior

Կարող է մի պոդում լինել մի քանի կոնտեյներ?

sobes.tech AI

Պատասխան AI-ից

Այո, կարող է լինել։ Դա սովորական պրակտիկա է Kubernetes-ում։

Մի քանի կոնտեյներ մի պոդում սովորաբար բաժանում են ռեսուրսները (պահեստային տարածք, ցանցային շերտ) և հաճախ օգտագործվում են օգնական գործառույթներ իրականացնելով հիմնական հավելվածի կոնտեյների կողքին (Sidecar ձևանմուշ):

Օգտագործման օրինակներ՝

  • Sidecar կոնտեյներներ: Մոնիտորինգ, գրանցում, ծառայության ցանցի պրոքսի (օրինակ՝ Envoy):
  • Ամբասադոր կոնտեյներներ: Պրոքս՝ արտաքին ծառայություններին մուտք գործելու համար:
  • Ադապտեր կոնտեյներներ: Օգնակատար գործընթացների ելքի նորմալիզացիա:

Պոդում գտնվող կոնտեյներները միշտ պլանավորվում են նույն հանգույցում (Node) և օգտագործում են նույն namespace-ը IPC (միջհրապարակային հաղորդակցություն) համար, ինչը թույլ է տալիս նրանց փոխազդել:

Նմուշ պոդի մանուֆեստի՝ երկու կոնտեյներով (հիմնական 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