首页 > 解决方案 > Kube / 使用配置图创建部署

问题描述

我是 kube 的新手,我正在尝试使用 configmap 文件创建部署。我有以下内容:

app-mydeploy.yaml
--------
apiVersion: apps/v1
kind: Deployment
metadata:
  name: app-mydeploy
  labels:
    app: app-mydeploy
spec:
  replicas: 3
  selector:
    matchLabels:
      app: mydeploy
  template:
    metadata:
      labels:
        app: mydeploy
    spec:
      containers:
        - name: mydeploy-1
          image: mydeploy:tag-latest
          envFrom:
          - configMapRef:
              name: map-mydeploy

map-mydeploy
-----
apiVersion: v1
kind: ConfigMap
metadata:
  name: map-mydeploy
  namespace: default
data:
  my_var: 10.240.12.1

我使用以下命令创建了配置和部署:

kubectl create -f app-mydeploy.yaml

kubectl create configmap map-mydeploy --from-file=map-mydeploy

当我在做的时候kubectl describe deployments,我在其他人中:

Environment Variables from:
  map-mydeploy  ConfigMap  Optional: false

kubectl describe configmaps map-mydeploy给我正确的结果。

问题是我的容器是CrashLoopBackOff,当我查看日志时,它说: time="2019-02-05T14:47:53Z" level=fatal msg="必需的环境变量 my_var 未设置。

此日志来自我的容器,它说my_var未在 env vars 中定义。

我做错了什么?

标签: kubernetes

解决方案


我认为您缺少命令中的键

kubectl create configmap map-mydeploy --from-file=map-mydeploy

  • 试试这个kubectl create configmap map-mydeploy --from-file=my_var=map-mydeploy

我还强烈建议,如果您只使用一个值,请从文字创建 configMap,kubectl create configmap my-config --from-literal=my_var=10.240.12.1然后在您的部署中关联 configMap,就像您当前正在执行的操作一样。


推荐阅读