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