你如何避免Kubernetes环境变量冲突

时间:2018-04-13 20:21:26

标签: kubernetes environment-variables dockerfile

假设您有一个带有SVC_A的Kubernetes集群,它通过环境变量引用另一个服务(在本例中为Postgres)

: "${POSTGRES_HOST:="postgres"}"
: "${POSTGRES_PORT:="5432"}"

POSTGRES_PORT有一种方法可以避免自动生成的环境变量的冲突,而不会更改服务名称postgres,因为这会改变其他服务所引用的集群内的DNS查找。

我知道我可以在引用服务Kubernetes部署部分手动设置环境变量,但是我想避免这种情况,因为当有多个容器引用该服务时,这似乎很费力且容易出错(Postgres)

来自Kubernetes YAML文件的相关服务定义

apiVersion: v1
kind: Service
metadata:
  name: postgres
spec:
  type: ClusterIP
  selector:
    app: airflow
    tier: db
  ports:
    - protocol: TCP
      port: 5432
      targetPort: postgrestest

引用容器容器时导出的环境变量

declare -x POSTGRES_PORT="tcp://10.100.0.208:5432"
declare -x POSTGRES_PORT_5432_TCP="tcp://10.100.0.208:5432"
declare -x POSTGRES_PORT_5432_TCP_ADDR="10.100.0.208"
declare -x POSTGRES_PORT_5432_TCP_PORT="5432"
declare -x POSTGRES_PORT_5432_TCP_PROTO="tcp"
declare -x POSTGRES_SERVICE_HOST="10.100.0.208"
declare -x POSTGRES_SERVICE_PORT="5432"
declare -x POSTGRES_SERVICE_PORT_POSTGRES="5432"

0 个答案:

没有答案
相关问题