首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes将镜像数据复制到卷挂载

Kubernetes将镜像数据复制到卷挂载
EN

Stack Overflow用户
提问于 2020-11-30 04:45:58
回答 2查看 319关注 0票数 1

我需要在两个容器myapp和monitoring之间共享一个目录,为此,我创建了一个emptyDir:{},然后在这两个容器上创建了volumeMount。

代码语言:javascript
复制
spec:
      volumes:
        - name:  shared-data
          emptyDir: {}
      containers:
      - name: myapp
        volumeMounts:
          - name:  shared-data
            mountPath:  /etc/myapp/
      - name: monitoring
        volumeMounts:
          - name: shared-data
            mountPath: /var/read 

这可以很好地工作,因为我写入共享数据目录的数据在两个容器中都可见。但是,在/etc/myapp/myapp.config下创建容器时创建的配置文件是隐藏的,因为共享数据卷挂载在/etc/myapp路径上(重叠)。

如何强制容器首先将卷挂载到/etc/myapp路径,然后使docker镜像将myapp.config文件放在默认路径/etc/myapp下,除非它是已挂载的卷,从而允许监控容器在/var/read下访问配置文件?

摘要:让监视容器读取myapp容器上的/etc/myapp/myapp.config文件。

有没有人能给点建议?

EN

回答 2

Stack Overflow用户

发布于 2020-11-30 16:36:16

您是否可以在init容器中挂载/var/read处的共享数据,并将配置文件从/etc/myapp/myapp.config复制到/var/read?

票数 1
EN

Stack Overflow用户

发布于 2020-12-09 18:48:25

考虑在SubPaths中使用ConfigMaps

API是一个

对象,用于以键值对的形式存储非机密性数据。Pod可以将ConfigMaps作为环境变量、命令行参数或卷中的配置文件使用。有时,在单个pod中共享一个卷以供多种用途是很有用的。volumeMounts.subPath属性指定引用卷内的子路径,而不是其根路径。

ConfigMaps可以用作卷。template.spec中的volumeMounts与任何其他卷相同。但是,volumes部分有所不同。您可以按名称引用configMap,而不是指定persistentVolumeClaim或其他卷类型。然后,您可以添加subPath属性,如下所示:

代码语言:javascript
复制
volumeMounts:
  - name:  shared-data
    mountPath:  /etc/myapp/
    subPath: myapp.config

以下是向您展示如何设置它的资源:

分步指导

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65064992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档