Kubernetes混合配置映射和主机路径

时间:2020-01-29 06:59:12

标签: kubernetes

这是我的部署文件,我正在使用命令kubectl apply -f deployment.yaml

应用它
    apiVersion: apps/v1
    kind: Deployment
    metadata:
        name: scan-deployment
        labels:
            app: scan
    spec:
       replicas: 1
       selector:
           matchLabels:
               app: scan
       template:
           metadata:
               labels:
                   app: scan
           spec:
               volumes:
               - name: shared-files
                 configMap:
                    name: shared-files
               containers:
               - name: scan-svc
                 image: scan:latest
                 imagePullPolicy: IfNotPresent
                 volumeMounts:
                 - name: shared-files
                   mountPath: /shared

这是我的文件test.txt,位于./shared/test.txt中,该文件是使用configMap配置的。

现在,问题是我的本地磁盘./shared/xml./shared/report中有subFolder,并且我想用容器映射/shared,但无法执行。我不想从这些子文件夹映射配置文件。部署的代码以xml和pdf格式创建报告,并将其保存在相应的文件夹中,我想将其映射到本地磁盘。

2 个答案:

答案 0 :(得分:1)

Configmaps don't support recursive directories../shared目录创建Configmap时,仅包含目录中的常规文件。子目录将被忽略。

您应该从./shared目录创建一个常规卷,然后将其装入容器。

答案 1 :(得分:1)

如果您能告诉我们为什么无法执行此操作,那很好,但是我认为它会覆盖/shared下的内容,这是预期的行为。

当您映射/shared时;在容器中有/shared的主机上,它将被正确映射,但是一旦创建configMap,它将被{{1 }}。