背景:

目前,我们正在使用Docker和Docker Compose为我们的服务。我们已将不同环境的配置外部化为定义应用程序读取的环境变量的文件。例如prod.env文件:

ENV_VAR_ONE=Something Prod

ENV_VAR_TWO=Something else Prod

和一个test.env文件:

ENV_VAR_ONE=Something Test

ENV_VAR_TWO=Something else Test

因此,我们可以在启动容器时简单地使用prod.env或test.env文件:

docker run --env-file prod.env

然后,我们的应用程序将根据prod.env中定义的环境变量来选择其配置。

问题:

>有没有办法从Kubernetes的文件中提供环境变量(例如定义一个pod),而不是像这样对它们进行硬编码:

apiVersion: v1

kind: Pod

metadata:

labels:

context: docker-k8s-lab

name: mysql-pod

name: mysql-pod

spec:

containers:

-

env:

-

name: MYSQL_USER

value: mysql

-

name: MYSQL_PASSWORD

value: mysql

-

name: MYSQL_DATABASE

value: sample

-

name: MYSQL_ROOT_PASSWORD

value: supersecret

image: "mysql:latest"

name: mysql

ports:

-

containerPort: 3306

>如果不可能,建议的方法是什么?

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐