【发布时间】:2018-08-05 07:38:17
【问题描述】:
我想以编程方式与同一个 pod 中的容器进行通信。
所以,我决定将辅助容器(本例中为bar1-container和bar2-container)的端口设置为环境变量 的主容器(即 foo-container)。
但是,我无法弄清楚如何在我的部署配置的 .yaml 文件中隐式传递辅助端口的暴露端口:
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
name: test-deployment
spec:
replicas: 1
template:
metadata:
labels:
app: web
tier: frontend
spec:
containers:
# Only container to be exposed outside the pod
- name: foo-container
image: foo
env:
- name: BAR_1_PORT
# HOW TO GET PORT HERE IMPLICITLY ???
value: XXXX
- name: BAR_2_PORT
# HOW TO GET PORT HERE IMPLICITLY ???
value: XXXX
ports:
- name: https
containerPort: 443
- name: http
containerPort: 80
# SubContainer 1
- name: bar1-container
image: bar1
# SubContainer 2
- name: bar2-container
image: bar2
我想知道是否有办法使用${some-variable-or-so-here} 之类的端口,而不是5300、80、9000 或从容器中公开的任何端口。
P.S:我故意没有在上面的 yaml 配置中指定辅助容器的 ports 或 containerPort 值,因为它们不会暴露在 pod 之外。
【问题讨论】:
标签: docker kubernetes environment-variables yaml