如何在ConfigMap中指定位于Kubernetes上运行的docker容器中的目录?

如何在ConfigMap中指定位于Kubernetes上运行的docker容器中的目录?,docker,kubernetes,airflow,configmap,Docker,Kubernetes,Airflow,Configmap,我在一个设置中工作,我在Kubernetes上部署了一个运行气流的docker容器。我要做的是将dags定义文件与包含气流安装的docker容器打包,以进行版本控制,然后让定义dags_文件夹目录的ConfigMap在气流docker中指定dags定义文件所在的目录 Dockerfile是k8s名称空间 RUN mkdir /home/airflow/ \ && mkdir /home/airflow/dags \ && chown airflow

我在一个设置中工作,我在Kubernetes上部署了一个运行气流的docker容器。我要做的是将dags定义文件与包含气流安装的docker容器打包,以进行版本控制,然后让定义dags_文件夹目录的ConfigMap在气流docker中指定dags定义文件所在的目录

Dockerfile是k8s名称空间

RUN mkdir /home/airflow/ \
    && mkdir /home/airflow/dags \
    && chown airflow:airflow /home/airflow \
    && chown airflow:airflow /home/airflow/dags

...

ADD dags.py /home/airflow/dags
USER airflow
配置映射

  airflow.cfg: |
    [core]
    dags_folder = /home/airflow/dags

您必须创建配置文件

airflow.cfg: |
data:
  core: 
    dags_folder = /home/airflow/dags
然后将其装入deployment.yml文件中

apiVersion: apps/v1
kind: Deployment
metadata:
  name: your_app_name
  namespace: default or your namespace
spec:
  replicas: 1
  selector:
    matchLabels:
      app: your_app_name
  template:
    metadata:
      labels:
        app: your_app_name
    spec:
      container:
        - name: Your image.
          ports:
           - name: my_app_port
             containerPort: 7000
          volumeMounts:
            - mountPath: /your/directory/airflow.cfg
              subPath: core
              name: name of config_map # this should match with name of config map
      volumes:
        - name: name of the config_map 
          configMap:
            name: your_config_map


必须使用子路径afflow.cfg将configmap装载到容器中需要的任何位置。