kubernetes - Kubernetes/Helm:在 Init 和 Main 容器之间共享一个非属性文件
问题描述
在 kubernetes (minikube) / helm env 中,我有一个 ldif 文件,我想在 Init 容器和普通容器之间的卷上共享。我不想共享存储此文件的整个文件夹。
不幸的是,据我了解,除非文件是属性之一(语法“key = value”),否则这是不可能的。
我使用 configMap/subPath 进行了测试,似乎如果不遵守键/值语法,则 Init 容器甚至没有启动,否则一切正常,文件也出现在主容器上。
所以我想知道是否有可能完成这种分享。
BR
编辑:主容器启动命令是单个服务启动,它不能执行副本或移动初始化容器共享的文件,除非它是唯一的方法。
解决方案
是的,这是可能的,而且你走在正确的轨道上。
这是如何执行此操作的示例。
---
kind: ConfigMap
apiVersion: v1
metadata:
name: example-configmap
data:
my-file.ldif: |
dn: cn=The Postmaster,dc=example,dc=com
objectClass: organizationalRole
cn: The Postmastermongodb
---
kind: Pod
apiVersion: v1
metadata:
name: example-pod
spec:
volumes:
- name: config-volume
configMap:
name: example-configmap
initContainers:
- name: init
image: busybox
volumeMounts:
- name: config-volume
mountPath: /path/in/the/init-container/my-file.ldif
subPath: my-file.ldif
containers:
- name: main
image: busybox
volumeMounts:
- name: config-volume
mountPath: /path/in/the/container/my-file.ldif
subPath: my-file.ldif
如果您发布了您的配置图,将会有所帮助。您可能会被绊倒,因为要使其正常工作,您需要文件的全部内容作为 configmap 中一个键的值。
推荐阅读
- c# - 继承类是否必须使用与其基类相同的参数才能进行依赖注入?
- javascript - 未在另一个函数中定义的函数
- javascript - Select2 在数据加载后立即关闭
- conda - conda 与 linux 环境模块的用例
- xml - JAVA JAX-WS 使用自定义 SOAPHandler 将 XML 转换为 SOAP
- vb.net - 错误,因为索引超出了数组的范围?
- flutter - 如何在 Flutter 中更改 ElevatedButton 的背景颜色?
- python - python动态嵌套字典到csv
- swift - 在 Vapor 命令中使用 Fluent
- prometheus - 随着时间的推移获得平均增长