如何在Kubernetes中创建和使用ConfigMap(分步指南)

介绍Kubernetes如何创建和使用ConfigMap?ConfigMaps 是一个有用的 Kubernetes 特性,它允许你通过分离配置设置来维护轻量级的可移植图像。
使用小的分层镜像是构建高效 Kubernetes 集群的实践之一。使用 ConfigMaps 可以帮助你实现这一目标。
在本教程中,你将学习如何创建和使用 ConfigMap,包括Kubernetes创建和使用ConfigMap示例。
先决条件

  • 使用sudo  或 root 权限访问用户帐户
  • 访问命令行/终端窗口(Ctrl  –  Alt  –  T)
  • Kubernetes 平台已安装
什么是 ConfigMap,它的用途是什么?ConfigMap 是将配置数据存储在键值对中的 API。它们的主要功能是将配置与容器映像分开。它可以代表整个配置文件或单个属性。
如果你正在使用 Kubernetes,你希望保持图像轻便和便携。为此,你应该将配置设置与应用程序代码分开。使用 ConfigMaps,你可以在 pod 上添加不同的配置数据以适应它们运行的??环境。
例如,你可以在开发、测试或生产阶段使用具有不同配置的相同代码。
注意:请注意 ConfigMap 未加密,不应用于敏感信息。要存储和管理敏感信息,请使用Kubernetes Secrets。
如何创建一个 ConfigMap?你可以从文件、目录和文字值创建 ConfigMap。
Kubernetes如何创建和使用ConfigMap?创建 ConfigMap 的基本语法是:
kubectl create configmap [ configmap_name] [ attribute] [ source]

根据来源,属性将是:
  • --from file  (如果源是文件/目录)
  • --from-literal  (如果源是键值对)
选项 1:使用 YAML 文件创建 ConfigMap
使用包含键值对格式所需配置的 .yaml 文件来创建 ConfigMap:
kubectl create configmap [ configmap_name] --from-file [ path/to/yaml/file]

例如,要从example-configmap.yaml文件中创建名为example-configmap的 ConfigMap  ,你可以运行:
kubectl create example-configmap --from-file /api/v1/namespace/default/configmaps/example-configmap.yaml

选项 2:从文件创建 ConfigMap
Kubernetes创建和使用ConfigMap示例:Kubernetes 允许从一个或多个任何纯文本格式的文件(只要文件包含键值对)创建 ConfigMap。
要从文件创建 ConfigMap,请使用以下命令:
kubectl create configmap [ configmap_name] --from-file [ path/to/file]

要从多个文件创建 ConfigMap,请运行:
kubectl create configmap [ configmap_name] --from-file [ path/to/file1] --from-file [ path/to/file2] --from-file [ path/to/file3]

选项 3:从目录创建 ConfigMap
你还可以从目录(即目录中的所有文件)创建 ConfigMap。为此,请使用以下命令:
kubectl create configmap [ configmap_name] --from-file [ path/to/directory]

Kubectl 将目录中的每个文件打包到新的 ConfigMap 中。仅包含具有有效密钥的基本名称的文件。ConfigMap 中不包含子目录和非常规文件。
选项 4:从文字值创建 ConfigMap
你还可以使用该--from-literal选项从文字值创建 ConfigMap  。
为此,请遵循基本语法:
kubectl create configmap [ configmap_name] --from-literal [ key1]=[ value1] --from-literal [ key2]=[ value]2

查看 ConfigMap 中的键值对要查看 Kubernetes ConfigMap 的详细信息和键的值,请使用以下命令:
kubectl get configmaps [ configmap_name] -o yaml

输出应以 yaml 格式显示信息:
apiVersion: v1 data: key1: value1 key2: value2 ... kind: ConfigMap metadata: creationTimeStamp: ... name: example-configmap namespace: default resourceVersion: ... selfLink: /api/v1/namespace/default/configmaps/example-configmap uid: ...

配置 Pod 以使用 ConfigMapKubernetes如何创建和使用ConfigMap?有两种方法可以配置 pod 以使用特定的 ConfigMap:
  1. 将 ConfigMap 作为卷挂载
  2. 使用环境变量
注意:你必须先创建 ConfigMap,然后才能将其引用到所需的 pod。
Kubernetes创建和使用ConfigMap示例:将 ConfigMap 挂载为卷
下载或创建 ConfigMap 后,你可以使用卷将配置挂载到 pod。
在 pod 的 yaml 文件中添加一个卷部分:
volumes: - name: config configMap name: [ configmap_name] items: - key: [ key/file_name] path: [ inside_the_pod]

如何在Kubernetes中创建和使用ConfigMap(分步指南)

文章图片
添加所需内容后,使用该kubectl create命令创建以 ConfigMap 作为卷的 pod。
将 ConfigMap 与 EnvFrom 一起使用
Kubernetes如何创建和使用ConfigMap?ConfigMaps 允许你通过环境变量引入多个值。
将env部分添加到 pod 的 yaml 文件以从 ConfigMap 中提取指定的环境变量:
env: - name: SPECIAL_LEVEL_KEY valueFrom: configMapKeyRef: name: [ configmap_name] key: [ key/file_name]

要从 ConfigMap 中提取所有环境变量,请将envFrom部分添加到 yaml 文件:
envFrom: - configMapKeyRef name: env-config

如何在Kubernetes中创建和使用ConfigMap(分步指南)

文章图片
然后,使用该kubectl create命令创建具有指定配置设置的 pod。
结论【如何在Kubernetes中创建和使用ConfigMap(分步指南)】本文向你展示了Kubernetes创建和使用ConfigMap示例,包括如何创建 ConfigMap 的四种不同方式。此外,它还包括两种将 Kubernetes ConfigMaps 与 Pod 结合使用的方法。

    推荐阅读