gpt4 book ai didi

kubernetes - 通过从k8s中的文件导入数据来填充ConfigMap

转载 作者:行者123 更新时间:2023-12-03 08:14:32 43 4
gpt4 key购买 nike

我有一个要求将一堆键值对推送到text / json文件。发布后,我想将键值数据导入configMap并使用kubernetes-client API在POD中使用此configMap。

关于如何完成此工作的任何指示都很棒。

TIA

最佳答案

您可以通过两种方式来实现。

从文件按原样创建ConfigMap。

在这种情况下,您将获得ConfigMap,其文件名为键,文件数据为值。

例如,您具有内容为your-file.json的文件{key1: value1, key2: value2, keyN: valueN}

和带有内容的your-file.txt
key1: value1
key2: value2
keyN: valueN

kubectl create configmap name-of-your-configmap --from-file=your-file.json
kubectl create configmap name-of-your-configmap-2 --from-file=your-file.txt

结果:
apiVersion: v1
kind: ConfigMap
metadata:
name: name-of-your-configmap
data:
your-file.json: |
{key1: value1, key2: value2, keyN: valueN}

apiVersion: v1
kind: ConfigMap
metadata:
name: name-of-your-configmap-2
data:
your-file.txt: |
key1: value1
key2: value2
keyN: valueN

之后,您可以将任何ConfigMap挂载到Pod,例如,让我们挂载 your-file.json:
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/config/keys" ]
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes:
- name: config-volume
configMap:
name: name-of-your-configmap
items:
- key: your-file.json
path: keys
restartPolicy: Never

现在,您可以从Pod中的 /etc/config/your-file.json获取任何信息。请记住,数据是只读的。

使用环境变量从文件创建ConfigMap。

您可以使用特殊语法在文件中定义对 key: value
这些语法规则适用:
  • 文件中的每一行都必须采用VAR = VAL格式。
  • 以#(即注释)开头的行将被忽略。
  • 空行将被忽略。
  • 没有对引号的特殊处理(即它们将成为ConfigMap值的一部分)。

  • 您具有内容的 your-env-file.txt文件
    key1=value1
    key2=value2
    keyN=valueN
    kubectl create configmap name-of-your-configmap-3 --from-env-file=you-env-file.txt

    结果:
    apiVersion: v1
    kind: ConfigMap
    metadata:
    name: name-of-your-configmap-3
    data:
    key1: value1
    key2: value2
    keyN: valueN

    现在,您可以将ConfigMap数据用作Pod环境变量:
    apiVersion: v1
    kind: Pod
    metadata:
    name: dapi-test-pod-2
    spec:
    containers:
    - name: test-container
    image: k8s.gcr.io/busybox
    command: [ "/bin/sh", "-c", "env" ]
    env:
    - name: SPECIAL_LEVEL_KEY
    valueFrom:
    configMapKeyRef:
    name: name-of-your-configmap-3
    key: key1
    - name: LOG_LEVEL
    valueFrom:
    configMapKeyRef:
    name: name-of-your-configmap-3
    key: key2
    - name: SOME_VAR
    valueFrom:
    configMapKeyRef:
    name: name-of-your-configmap-3
    key: keyN
    restartPolicy: Never

    现在,您可以在Pod中使用这些变量。

    有关更多信息,请检查 documentation

    关于kubernetes - 通过从k8s中的文件导入数据来填充ConfigMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49478036/

    43 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com