kubernetes 在部署时将 configmap 分配为环境变量
kubernetes assign configmap as environment variables on deployment
我正在尝试将我的映像部署到 Azure Kubernetes 服务。我使用命令:
kubectl apply -f mydeployment.yml
这是我的部署文件:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-api
spec:
replicas: 1
selector:
matchLabels:
app: my-api
template:
metadata:
labels:
app: my-api
spec:
containers:
- name: my-api
image: mycr.azurecr.io/my-api
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
ports:
- containerPort: 80
envFrom:
- configMapRef:
name: my-existing-config-map
我创建了 configmap my-existing-config-map
,其中包含一堆值,但部署不会将这些值添加为环境变量。
配置映射是通过“.env”文件以这种方式创建的:
kubectl create configmap my-existing-config-map --from-file=.env
我在这里错过了什么?
如果您的 .env 文件是这种格式
a=b
c=d
您需要改用 --from-env-file=.env。
为了更加说明,使用 --from-file=aa.xx 创建的 configmap 看起来像这样
aa.xx: |
file content here....
....
....
当配置映射与 envFrom.configmapref 一起使用时,它只是在环境变量“aa.xx”上创建内容。在这种情况下,该文件名以“.”开头。像 .env 一样,甚至没有创建 env 变量,因为名称违反了 UNIX env 变量名称规则。
当您使用 .env 文件时,文件的格式很重要
- 按以下格式创建 config.env 文件,其中可以包含注释
echo -e "var1=val1\n# this is a comment\n\nvar2=val2\n#anothercomment" > config.env
- 创建配置映射
kubectl create cm config --from-env-file=config.env
- 在你的 pod 定义文件中使用 config Map
apiVersion: v1
kind: Pod
metadata:
labels:
run: nginx
name: nginx
spec:
containers:
- image: nginx
name: nginx
resources: {}
envFrom:
- configMapRef:
name: config
我正在尝试将我的映像部署到 Azure Kubernetes 服务。我使用命令:
kubectl apply -f mydeployment.yml
这是我的部署文件:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-api
spec:
replicas: 1
selector:
matchLabels:
app: my-api
template:
metadata:
labels:
app: my-api
spec:
containers:
- name: my-api
image: mycr.azurecr.io/my-api
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
ports:
- containerPort: 80
envFrom:
- configMapRef:
name: my-existing-config-map
我创建了 configmap my-existing-config-map
,其中包含一堆值,但部署不会将这些值添加为环境变量。
配置映射是通过“.env”文件以这种方式创建的:
kubectl create configmap my-existing-config-map --from-file=.env
我在这里错过了什么?
如果您的 .env 文件是这种格式
a=b
c=d
您需要改用 --from-env-file=.env。
为了更加说明,使用 --from-file=aa.xx 创建的 configmap 看起来像这样
aa.xx: |
file content here....
....
....
当配置映射与 envFrom.configmapref 一起使用时,它只是在环境变量“aa.xx”上创建内容。在这种情况下,该文件名以“.”开头。像 .env 一样,甚至没有创建 env 变量,因为名称违反了 UNIX env 变量名称规则。
当您使用 .env 文件时,文件的格式很重要
- 按以下格式创建 config.env 文件,其中可以包含注释
echo -e "var1=val1\n# this is a comment\n\nvar2=val2\n#anothercomment" > config.env
- 创建配置映射
kubectl create cm config --from-env-file=config.env
- 在你的 pod 定义文件中使用 config Map
apiVersion: v1
kind: Pod
metadata:
labels:
run: nginx
name: nginx
spec:
containers:
- image: nginx
name: nginx
resources: {}
envFrom:
- configMapRef:
name: config