如何在一个pod中运行多个无状态容器?

Rot*_*eti 1 openshift docker kubernetes

我有几个小容器,内存占用很少,流量很小.我认为为每个人配备一个单独的吊舱是太过分和太昂贵了.

我目前通过简单地将Docker镜像推送到OpenShift在线容器注册表来部署容器.一旦新图像到达,OpenShift将重建并部署应用程序.它运行正常,但我找不到让OpenShift接受同一应用程序/ pod的多个图像/容器的方法.

有谁知道如何在一个应用程序/ pod中运行多个容器?

sve*_*ltr 5

我不知道在创建多个pod时你有什么样的缺点.Pod与容器的开销可以忽略不计.

但是将多个应用程序放入单个pod中显然存在缺点:

  • 如果要重新启动单个容器,则需要重新启动所有容器
  • 您无法单独扩展容器,因此您无法获得不同的服务数(对于HA或负载分配)
  • 您必须按端口识别服务,因为服务发现适用于每个Pod
    • 即.拥有多个HTTP服务,您可以将它们全部映射到端口80并使用http://fooservicehttp://barservice不是http://uberpod:8001http://uberpod:8002

同样,几乎没有多个Pod的开销.

我不知道Kubernetes在OpenShift中的集成是如何工作的,但是使用普通的Kubernetes YAML文件,你可以在容器列表中添加另一个容器:

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels:
    app: myapp
spec:
  containers:
  - name: foo
    image: busybox
    command: ['sh', '-c', 'echo Hello Kubernetes! && sleep 3600']
  - name: bar
    image: mycontainer:latest
Run Code Online (Sandbox Code Playgroud)