簡體   English   中英

在一個Single Pod Kubernetes中運行多個容器

[英]Running multiple container in one Single Pod Kubernetes

我是Kubernetes的新手,因此決定將其用於我目前正在從事的一個小型項目的POC。

我有一個容器化的bash腳本,它使用一個參數執行。

Kubernetes庫存文件如下所示:

---
apiVersion: v1
kind: Pod
metadata:
  name: device-pod
  labels:
    name: device-pod
spec:
  containers:
    - image: azurecr.io/device:1.02
      name: device-0
      args: ["0"]
  containers:
    - image: azurecr.io/device:1.02
      name: device-1
      args: ["1"]
  containers:
    - image: azurecr.io/device:1.02
      name: device-2
      args: ["2"]
  containers:
    - image: azurecr.io/device:1.02
      name: device-3
      args: ["3"]

從上面的清單文件中可以看到,我正在創建一個名為“ device-pod”的Pod,該Pod應該承載和運行4個名稱為device-n的容器(其中n為0..4)

我部署了Pod,它工作正常,但是問題是在部署之后,我不知何故只能看到容器“ device-3”正在運行,我似乎在Pod中找不到任何其他正在運行的容器。 我本來以為Pod中會運行4個容器。

Events:
  FirstSeen LastSeen    Count   From                SubObjectPath               Type        Reason      Message
  --------- --------    -----   ----                -------------               --------    ------      -------
  18m       18m     1   default-scheduler                           Normal      Scheduled   Successfully assigned device-pod to k8s-agent-abe168bc-3
  18m       18m     1   kubelet, k8s-agent-abe168bc-3   spec.containers{device-3}   Normal      Created     Created container with id 770ce7568a7dfe73bacdcd5232e8961fd3098486c82cce56465c04c1c4434659
  18m       18m     1   kubelet, k8s-agent-abe168bc-3   spec.containers{device-3}   Normal      Started     Started container with id 770ce7568a7dfe73bacdcd5232e8961fd3098486c82cce56465c04c1c4434659
  13m       13m     1   kubelet, k8s-agent-abe168bc-3   spec.containers{device-3}   Normal      Started     Started container with id 17c1ae7caa8f017a0ca81925962ecf229ff42a498af7de0dfe93a11fdaa9f43e
  13m       13m     1   kubelet, k8s-agent-abe168bc-3   spec.containers{device-3}   Normal      Created     Created container with id 17c1ae7caa8f017a0ca81925962ecf229ff42a498af7de0dfe93a11fdaa9f43e
  9m        9m      1   kubelet, k8s-agent-abe168bc-3                       Warning     FailedSync  Error syncing pod, skipping: failed to "StartContainer" for "device-3" with CrashLoopBackOff: "Back-off 10s restarting failed container=device-3 pod=device-pod_default(922476fb-a4fb-11e7-8ca8-000d3a25fb55)"

  9m    9m  1   kubelet, k8s-agent-abe168bc-3   spec.containers{device-3}   Normal  Created     Created container with id 5f4db92d4318537eb541dbf11b5b4e4cb7eaa93fcc26061c2e7b970505f27d5e
  9m    9m  1   kubelet, k8s-agent-abe168bc-3   spec.containers{device-3}   Normal  Started     Started container with id 5f4db92d4318537eb541dbf11b5b4e4cb7eaa93fcc26061c2e7b970505f27d5e

我似乎沒有看到關於Container的任何事件:device-0,device-1和device-2

我在這里做錯了什么? 任何想法,將不勝感激。

該問題可能是由於以下事實造成的:在您的規范中,您定義了“容器”乘以多個,而不是使用一個帶有多個容器聲明的“容器”規范。 實際上,它實際上是一個數組/列表,如下所示:

---
apiVersion: v1
kind: Pod
metadata:
  name: device-pod
  labels:
    name: device-pod
spec:
  containers:
    - image: azurecr.io/device:1.02
      name: device-0
      args: ["0"]
    - image: azurecr.io/device:1.02
      name: device-1
      args: ["1"]
    - image: azurecr.io/device:1.02
      name: device-2
      args: ["2"]
    - image: azurecr.io/device:1.02
      name: device-3
      args: ["3"]

關於您所遇到的行為的一種可能解釋是,當只應運行一個時,將順序解析和執行所有“容器”聲明。 因此,由於該序列,您有多個容器開始/運行/終止,但是只有最后一個(最后的聲明)保持運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM