🉐

[K8S] ConfigMap And Secret

在Kubernetes(K8s)中,ConfigMap 和 Secret 是用来存储应用程序配置信息和敏感数据的两种资源类型。它们可以帮助你将配置和密钥管理与应用程序的部署分离开来,从而提高安全性和灵活性。

定义

ConfigMap

ConfigMap 用于存储非敏感的配置数据,比如环境变量、配置文件等。它可以通过多种方式注入到 Pod 中,例如作为环境变量、命令行参数或者挂载为文件。

Secret

Secret 用于存储敏感数据,比如密码、API 密钥等。Secret 中的数据会被存储为 Base64 编码,但需要注意的是,这并不是加密,只是一种编码方式。

对比

资源名称
相同点
不同点
ConfigMap
注入到 Pod 中的环境变量或者挂载为文件,且都为key:value 方式(map 类型)
内容为明文,适合存放配置文件路径
Secret
注入到 Pod 中的环境变量或者挂载为文件,且都为key:value 方式(map 类型)
内容进行了 Base64 编码,密码等,通过 Type 字段可以进行内容限制

使用方式

创建 ConfigMap

你可以通过命令行或者 YAML 文件创建 ConfigMap。以下是一个创建 ConfigMap 的示例 YAML 文件:

在 Pod 中使用 ConfigMap

你可以在 Pod 的定义中引用 ConfigMap。
 

创建 Secret

你可以通过命令行或者 YAML 文件创建 Secret。以下是一个创建 Secret 的示例 YAML 文件:

在 Pod 中使用 Secret

你可以在 Pod 的定义中引用 Secret。

演示

使用 uccps 演示

configmap 演示

通过 yaml 文件创建

notion image

查看结果

notion image
notion image

Secret 演示

通过 yaml 文件创建

notion image

结果

notion image
notion image

总结

ConfigMap 用于存储非敏感的配置数据,而 Secret 用于存储敏感数据。它们可以帮助你将配置信息和敏感数据与应用程序的部署分离开来,提高了安全性和灵活性。
 

资源来源