[英]How to mount a ConfigMap as a file without using volume
這個問題背后的目的是要知道如何在 Pod 中有一個文件,如果我們使用 ConfigMap,如果 configMap 會改變,我不想應用更改
謝謝
我不太明白,你為什么不想使用卷? 將 confgimap 掛載到 pod 的正確方法如下所示: Configmap- 在data
部分中指定文件的名稱:
apiVersion: v1
kind: ConfigMap
metadata:
creationTimestamp: 2016-02-18T18:52:05Z
name: txt-file-configmap
namespace: default
resourceVersion: "516"
selfLink: /api/v1/namespaces/default/configmaps/game-config
uid: b4952dc3-d670-11e5-8cd0-68f728db1985
data:
file.txt: |
here
are
filecontents
在一個 pod 中,指定一個帶有 configmap 名稱和 volumeMount 的卷,指向一個路徑,在哪里安裝卷:
apiVersion: v1
kind: Pod
metadata:
name: dapi-test-pod
spec:
containers:
- name: test-container
image: k8s.gcr.io/busybox
command: [ "/bin/sh", "-c", "cat /etc/txtfiles/file.txt" ]
volumeMounts:
- name: txt-file
mountPath: /etc/txtfiles
volumes:
- name: txt-file
configMap:
name: txt-file-configmap
我提供給您的示例 pod 會將 configmap 作為文件安裝並打印其內容。
我認為您想要一個 pod 內的文件,但如果配置映射已更新,您不想更新該文件。 所以你不能使用 configmap 因為它會在 pod 重啟時更新文件。
所以我能想到的唯一選擇是在創建 pod 后推送文件,例如“kubectl cp”命令將文件復制到 pod。
kubectl cp <some-namespace>/<some-pod>:/tmp/foo /tmp/bar
問題將是當 pod 重新啟動時文件消失了,因此您必須以某種方式使其自動化,
下面是使用 init 容器。
您可以將文件放在某個 XYZ 位置並通過 init 容器下載它。
initContainers:
- name: download-conf
image: busybox:1.28
command: ['sh', '-c', 'curl http://exampel.com/conf.file -o statfull.conf']
注意:- 這是一種未經測試的公正方法代碼
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.