【问题标题】:Can we have same kind of multiple containers in a Pod in Kubernetes?我们可以在 Kubernetes 的 Pod 中拥有相同类型的多个容器吗?
【发布时间】:2016-01-22 22:03:42
【问题描述】:

例如,我可以使用以下 yaml 来生成具有多个容器的 pod:

apiVersion: v1
kind: Pod
metadata:
name: lampapp
labels:
    app: app
spec:
  containers:
  - name: lampdb
    image: mysql_test
  - name: app
    image: php-app-db-url-env
    env:
     - name: DB_URL
      value: 127.0.0.1:3306
  - name: app2
    image: php-app-db-url-env
    env:
    - name: DB_URL
      value: 127.0.0.1:3306

【问题讨论】:

标签: kubernetes kubernetes-container kubernetes-pod


【解决方案1】:

是的,您可以添加多个具有相同图像的容器。

容器对象必须包含:

  1. 名称: 容器的名称。它必须是 DNS_LABEL 并且是 pod 中的 unique。无法更新。
  2. 图像: Docker 图像名称。

您必须使容器名称唯一

您可以执行以下操作:

- name: app
  image: php-app-db-url-env   ---
- name: app2                    |> same image
  image: php-app-db-url-env   ---

但不是这个:

- name: app
  image: php-app-db-url-env
- name: app
  image: <any image>

容器规范也应该在 Pod 中包含一个唯一的端口号

【讨论】:

  • 谢谢。我尝试了上述结构,但它所做的是:它启动了第一个容器,但在几秒钟内终止了第二个容器。并且它不断地重新启动它。
  • 可能他们正在尝试监听同一个端口。检查一下
  • kubectl describe 应该会为您提供有关问题所在的线索
【解决方案2】:

可以有相同种类的容器,但它们的端口会不同。

【讨论】:

  • 是的,这是一句好话。如果您有 2 个具有相同图像和不同名称的容器,请注意容器参数。如果容器具有相同的端口选项,则只有最后一个容器会运行。
【解决方案3】:

嗯,这正是 Pod 的含义:多个容器共享一些命名空间和卷。

【讨论】:

    猜你喜欢
    • 2018-08-17
    • 2019-12-28
    • 2017-04-29
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    相关资源
    最近更新 更多