首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一个Pod Kubernetes中运行多个容器

在一个Pod Kubernetes中运行多个容器
EN

Stack Overflow用户
提问于 2017-09-29 10:11:35
回答 1查看 1.1K关注 0票数 0

我对Kubernetes很陌生,并决定在我目前正在从事的一个小项目中使用它作为POC。

我有一个bash脚本,它是容器化的,它是用一个参数执行的。

Kubernetes库存文件如下所示:

代码语言:javascript
复制
---
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"]

正如您可以从上面的库存文件中看到的,我正在创建一个名为“设备-荚”的容器,它应该以设备-n(其中n是0..4)来托管和运行4个容器。

我部署了吊舱,它工作得很好,但问题是,在部署之后,我只看到容器“Dev-3”在运行,似乎找不到任何其他运行的容器。我原以为会有4个集装箱在吊舱内运行。

代码语言:javascript
复制
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

我似乎看不到容器的任何事件:设备-0、设备-1和设备-2。

我在这里做错什么了?任何想法都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-29 10:20:33

这个问题可能是因为在您的规范中定义了“容器”,而不是有一个带有多个容器声明的“容器”规范。实际上,它是一个数组/列表,如下所示:

代码语言:javascript
复制
---
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"]

对您正在经历的行为的一个可能的解释可能是对所有“容器”声明的顺序解析和执行,而此时应该只有一个在运行。因此,您有多个容器因为序列而启动/运行/终止,但只有最后一个(最后一个声明)仍在运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46486645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档