假设您有一个带有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"