我正在运行一些Docker容器,它们共享相同的基础镜像,但几个环境变量的值略有不同(以及一些共享值)。我的设置如下所示:
# Run 2 containers for client 123
docker run --net=host -e CLIENT_ID=123 -e LOCATION=A -e SHARED_VALUE=ONE -ti myregistry.com/app:0.1.0
docker run --net=host -e CLIENT_ID=123 -e LOCATION=A -e SHARED_VALUE=ONE -ti myregistry.com/app:0.1.0
# Run 2 containers for client 456
docker run --net=host -e CLIENT_ID=456 -e LOCATION=B -e SHARED_VALUE=ONE -ti myregistry.com/app:0.1.0
docker run --net=host -e CLIENT_ID=456 -e LOCATION=B -e SHARED_VALUE=ONE -ti myregistry.com/app:0.1.0
... etc我非常确定这将转化为多个配置映射,例如
配置映射
1)
# config map for the first set containers
apiVersion: v1
kind: ConfigMap
metadata:
name: config-1
namespace: default
data:
CLIENT_ID: 123
LOCATION: A2)
# config map for the second set of containers
apiVersion: v1
kind: ConfigMap
metadata:
name: config-2
namespace: default
data:
CLIENT_ID: 456
LOCATION: B3)
# shared configmap
apiVersion: v1
kind: ConfigMap
metadata:
name: config-shared
namespace: default
data:
SHARED_VALUE=ONE但我不确定的是,我是否应该为这些稍有不同的容器集创建单独的部署,或者是否应该在单个部署中包含这两组容器。我倾向于将这些组合到一个部署中,如下所示:
apiVersion: v1
kind: Pod
metadata:
name: test-pod
spec:
containers:
- name: container-1
...
env:
- name: CLIENT_ID
valueFrom:
configMapKeyRef:
name: config-1
key: CLIENT_ID
- name: LOCATION
valueFrom:
configMapKeyRef:
name: config-1
key: LOCATION
- name: SHARED_VALUE
valueFrom:
configMapKeyRef:
name: config-shared
key: SHARED_VALUE
- name: container-2
...
env:
- name: CLIENT_ID
valueFrom:
configMapKeyRef:
name: config-2
key: CLIENT_ID
- name: LOCATION
valueFrom:
configMapKeyRef:
name: config-2
key: LOCATION
- name: SHARED_VALUE
valueFrom:
configMapKeyRef:
name: config-shared
key: SHARED_VALUE无论如何,在决定是否在单个部署中包含多个容器时,我应该考虑哪些事情?我在这里采取的方法有什么缺点吗?
发布于 2017-10-23 19:24:51
在我看来,在这种情况下,每个客户端的单独部署肯定是可行的。
发布于 2017-10-23 19:36:53
您可以使用configMap填充环境变量的值,并在pod定义中引用它。你的方法很好。
关于在一个实例中部署多个容器,这取决于您的容器之间的相互依赖程度。Kubernetes文档写得很好,是关于How Pods manage multiple Containers的。
注如果您想在单个pod中耦合容器,我建议您使用Kubernetes Deployments对象来共同利用ReplicaSets和pod。
https://stackoverflow.com/questions/46880722
复制相似问题