[英]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.