kubernetes 以单个文件的方式挂载 configMap 及挂载注意事项

问题现象

默认挂载 configMap 时,kubernetes 会覆盖掉挂载的整个目录,哪怕使用 items 也会导致整个目录被覆盖,那么如何实现挂在单个文件而不覆盖整个目录呢。下面说一下 kubernetes 中如何挂载单个文件而不是整个目录。

解决方案

使用 subPath

实际上 kubernets 本身提供了 volumeMounts.subPath 属性用于挂在单个文件而不是整个目录。

下面是一个示例:

apiVersion: v1
kind: Pod
metadata:
  name: my-lamp-site
spec:
    containers:
    - name: php
      image: php:7.0-apache
      volumeMounts:
      - mountPath: /var/www/html/index.php
        name: index
        subPath: index.php
    volumes:
    - name: index
      configMap:
        name: php-index
        items:
        - key: index.php
          path: index.php

注意事项

需要注意的是:

  • 如果使用ConfigMap的subPath挂载为Container的Volume,Kubernetes不会做自动热更新
  • ConfigMap 哪怕不使用subPath的挂载方式 C# 文件修改监听功能也没有触发,Golang 的正常,怀疑可能和自己的实现有关,因为还有其他事情没有继续跟进,下周准备继续跟进一下。此处只是作为提醒
发布了76 篇原创文章 · 获赞 27 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/kunyus/article/details/88935850
今日推荐