我正在尝试将映像部署到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
我在这里想念什么?
答案 0 :(得分:2)
如果您的.env文件采用这种格式
a=b
c=d
您需要改用--from- env -file = .env。
为进一步说明,使用--from-file = aa.xx创建configmap看起来像这样
aa.xx: |
file content here....
....
....
当与envFrom.configmapref一起使用的配置映射时,它仅在包含内容的env变量“ aa.xx”上创建。在这种情况下,该文件名以“。”开头。像.env一样,甚至都不会创建env变量,因为该名称违反了UNIX env变量名称规则。
答案 1 :(得分:1)
在使用.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
apiVersion: v1
kind: Pod
metadata:
labels:
run: nginx
name: nginx
spec:
containers:
- image: nginx
name: nginx
resources: {}
envFrom:
- configMapRef:
name: config