跳到主要内容

Environment Variable Management

虽然应用程序的环境变量信息可以硬编码在 YAML 文件中,但这缺乏可重用性。从操作的角度来看,将运行应用程序的代码与注入到应用程序中的配置代码分开,可以显著增强可重用性。这些应用程序的内部配置值可以在外部管理,并通过 Kubernetes 的 Secret ConfigMap 资源注入到容器中。

备注

在将安全敏感信息(如密码、API 密钥、SSH 密钥等)注入到容器时使用 Secret。

ConfigMap 用于将非敏感的配置信息注入到容器中。

Environment Variables List

这是管理注册为应用程序环境变量的 Secret 和 ConfigMap 信息的界面:

① Env/Properties 配置信息列表。

  • Name: 环境变量的名称。
  • Secret/ConfigMap Name:管理环境变量的 Secret 或 ConfigMap 的名称。在 Kubernetes 环境中,应用程序使用的环境变量作为 Secret/ConfigMap 管理。
  • Type: 在屏幕上显示如下:
    • 如果是 ConfigMap,则仅显示 ConfigMap。
    • 如果是 Secret,则显示特定类型的秘密(dockerconfigjson、opaque、tls、service-account-token、basic-auth 等)。
      • Opaque (generic):一种通用秘密,可以用于与 ConfigMap 相同的目的。它也可以用于将敏感数据传递给容器。
      • Dockerconfigjson:用于访问 Docker 镜像库的身份验证信息。Kubernetes 需要访问镜像库,因为它管理容器,对于像 Docker Hub 或 ECR 这样的私有镜像,需额外的身份验证。dockerconfigjson 是用于访问这些私有注册表的秘密。
      • tls:帮助将 TLS 证书作为秘密进行管理。当 TLS 证书信息存储在 Secret 中时,像 Pods 或 Services 这样的对象可以使用它进行加密通信。
      • service-account-token:与 ServiceAccount 相关联,这是 RBAC(基于角色的访问控制)的关键 Kubernetes API 资源。ServiceAccount 与 Pod 关联并设置其权限。当连接 ServiceAccount 时,会自动创建一个包含身份验证信息的令牌作为秘密。
      • basic-auth:此类型用于存储基本身份验证的凭据。

使用此秘密类型时,秘密的数据字段必须包含以下两个键之一:

username:用于身份验证的用户名,

password:用于身份验证的密码或令牌。

  • Namespace:部署 Secret/ConfigMap 的集群命名空间。
  • Microservice:当前使用环境变量的微服务/应用程序的名称。
  • Action:环境变量信息的附加操作按钮。
    • 编辑:转到环境变量的编辑页面。
    • 删除:删除环境变量。

② ConfigMap 导入:您可以从在 Kubernetes 中部署的 Secrets/ConfigMaps 中选择并注册。

③ 创建新的 Secret/ConfigMap 资源。

④ 删除 Secret/ConfigMap 信息。

⑤ 根据名称或命名空间搜索值过滤视图。

Environment Variable creation

在环境变量列表屏幕上,单击“添加新”按钮以创建新的 Secret/ConfigMap。

Creating a ConfigMap (File Type)

这是 ConfigMap 创建页面上每个项目的详细描述。

① 类型:选择用于存储环境变量的 ConfigMap 和 Secret 类型。

② 名称:将管理应用程序配置信息的 ConfigMap 的名称。

③ 命名空间:从配置文件中注册的命名空间列表中选择要使用的 ConfigMap 的命名空间。

④ ConfigMap 类型:ConfigMap 支持属性和文件格式。详细信息如下:

  • 属性:可以以键/值格式注册配置信息的类型。
  • 文件:允许注册现有配置文件的类型。例如,如果您想单独管理 SpringBoot 应用程序的 application.yaml 文件,请使用文件类型。

⑤ 挂载路径:选择文件类型时,输入文件将在应用程序中注入和挂载的路径。

⑥ 添加文件:您可以输入多个文件,并为每个附加文件单击添加按钮。

⑦ 删除按钮:删除已添加的文件信息。

⑧ 取消:从 ConfigMap 创建页面取消。

⑨ 保存:保存输入的信息以创建 ConfigMap。

Creating a ConfigMap (Property Type)

① 类型:选择用于存储环境变量的 ConfigMap 和 Secret 类型。

② 名称:将管理应用程序配置信息的 ConfigMap 的名称。

③ 命名空间:从配置文件中注册的命名空间列表中选择要使用的 ConfigMap 的命名空间。

④ ConfigMap 类型:选择适当的属性:

  • 属性:可以以键/值格式注册配置信息的类型。
  • 文件:允许注册现有配置文件的类型。例如,如果您想单独管理 SpringBoot 应用程序的 application.yaml 文件,请使用文件类型。

⑤ 数据(数据注册):输入应用程序的配置信息如下:

  • 键:环境变量的键。
  • 值:环境变量的值。
  • 环境变量:可以注入并在实际应用程序中使用的 env 名称。
  • Spring 属性(可选):输入映射到 application.yaml 文件中属性的变量名称。

⑥ 添加按钮:可以通过单击添加按钮添加新的配置信息。在此页面上,可以创建多个配置信息。

⑦ 删除按钮:可以删除已添加的配置信息。

⑧ 保存:保存输入的信息以创建 ConfigMap。

Creating a Secret (Opaque Type)

这是 Secret 创建页面上每个项目的详细描述。

① 类型:选择 Secret 的类型。当您需要将敏感信息(如密码、API 密钥、SSH 密钥等)注入到容器中时使用 Secrets。

② 名称:输入 Secret 的名称。

③ 命名空间:从配置文件中注册的命名空间列表中选择 Secret 的命名空间。

④ Secret 类型:Secrets support 两种 Opaquekubernetes.io/dockerconfigjson 格式。

  • Opaque:以键/值格式注册配置信息的方法。(详细说明可以在环境变量列表部分找到)。
  • kubernetes.io/dockerconfigjson:用于注册访问镜像注册表的身份验证信息的方法。(详细说明可以在环境变量列表部分找到)。

⑤ 数据(数据注册):以类似于输入配置信息的方式输入数据。

  • 键:环境变量的键。
  • 值:环境变量的值。
  • 环境变量:可以注入并在实际应用中使用的环境名称。
  • Spring 属性(可选):输入映射到 application.yaml 文件中属性的变量名称。

⑥ 添加按钮:您可以输入多个键值数据对,并为每个新数据点击添加按钮。

⑦ 删除按钮:删除特定的键值数据。

⑧ 保存:保存输入的信息以创建密钥。

创建密钥 (kubernetes.io/dockerconfigjson 类型)

本节提供了有关 dockerconfigjson 类型的密钥创建页面上每个项目的详细描述。

① 类型:选择您是要创建 ConfigMap 还是密钥。

② 名称:输入密钥的名称。

③ 命名空间:从配置文件中注册的命名空间列表中选择密钥的命名空间。

④ 密钥类型:密钥支持 Opaquekubernetes.io/dockerconfigjson 格式。

  • Opaque:以键/值格式注册配置信息的方法。(详细说明可以在环境变量列表部分找到。)
  • kubernetes.io/dockerconfigjson:注册访问镜像注册表的身份验证信息的方法。(详细说明可以在环境变量列表部分找到。)

⑤ 镜像注册表:这是在项目设置中注册的镜像注册表列表。选择您希望使用正在创建的密钥进行身份验证的镜像注册表。

⑥ 保存按钮:保存输入的信息以创建密钥。

导入环境变量

从环境变量列表中,点击导入文件按钮以导入密钥/ConfigMap。

导入 ConfigMap(属性类型)

本节描述如何导入现有的属性类型 ConfigMap:

① 类型:选择您是要导入 ConfigMap 还是密钥。

② 名称:输入 ConfigMap 的名称。

③ 命名空间:从配置文件中注册的命名空间列表中选择 ConfigMap 的命名空间。

④ ConfigMap 类型:ConfigMaps 支持属性和文件格式。

  • 属性:以键/值格式注册配置信息的格式。
  • 文件:用于注册现有配置文件的格式。例如,如果您想单独管理 SpringBoot 应用程序的 application.yaml 文件,您将使用文件类型。

⑤ ConfigMaps:这将显示在第 ③ 步中选择的命名空间中部署的 ConfigMaps 列表。选择您要导入的 ConfigMap。

⑥ 数据(数据注册):显示所选 ConfigMap 的键值数据。您无法在导入过程中修改此键值信息。

⑦ 保存按钮:保存输入的信息。

导入 ConfigMap(文件类型)

本节提供了有关文件类型的 ConfigMap 导入页面上每个项目的详细描述:

类型、名称和命名空间信息与之前设置的相同。

① ConfigMap 类型:ConfigMaps 支持属性和文件格式。属性:以键/值格式注册配置信息的格式。文件:用于注册现有配置文件的格式。例如,使用此格式来分离和管理 SpringBoot 的 application.yaml 文件。

② ConfigMaps:显示在所选命名空间中部署的 ConfigMaps 列表。选择您要导入的 ConfigMap。

③ 挂载路径:如果选择了文件格式,请输入文件将在应用程序中挂载的路径。

④ 文件注册:显示所选 ConfigMap 的配置数据。

⑤ 保存按钮:保存输入的信息。

导入密钥(环境)

本节描述如何导入现有的环境变量密钥。

类型、名称和命名空间信息与之前设置的相同。 ① 密钥:显示在所选命名空间中部署的密钥列表。选择您要导入的密钥。

② 密钥类型:显示所选密钥的具体类型。此项无法修改。

③ 数据(数据注册):显示所选密钥的详细数据。

④ 保存按钮:保存输入的信息。

导入密钥(文件)

本节描述如何导入现有的基于文件的配置密钥。

类型、名称和命名空间信息与之前设置的相同。 ① 密钥:显示在所选命名空间中部署的密钥列表。选择您要导入的密钥。

② 密钥类型:显示所选密钥的具体类型。此项无法修改。

③ 挂载路径:密钥数据将在应用程序中挂载的路径。

④ 只读:设置挂载的密钥是否为只读。

⑤ 保存按钮:保存输入的信息。

环境变量编辑

编辑 ConfigMap(文件)

本节提供了有关文件类型的 ConfigMap 编辑页面上每个项目的详细描述。

① 挂载路径:如果选择了文件格式,请输入文件将在应用程序中挂载的路径。

② 文件注册:添加新配置文件或修改现有文件。

③ 保存按钮:保存输入的信息。

编辑 ConfigMap(属性)

本节提供了有关属性类型的 ConfigMap 编辑页面上每个项目的详细描述。

① 数据(数据注册):显示所选密钥的详细数据。

② 保存按钮:保存输入的信息。

编辑密钥(kubernetes.io/dockerconfigjson)

dockerconfigjson 类型的密钥无法编辑。

编辑密钥(不透明)

本节提供了有关不透明类型的密钥编辑页面上每个项目的详细描述。

① 数据(数据注册):显示所选密钥的详细数据。

② 保存按钮:保存输入的信息。

编辑密钥(文件)

本节提供了详细描述。

① 挂载路径:如果选择了文件格式,请输入文件将在应用程序中挂载的路径。

② 文件注册:添加新配置文件或修改现有文件。

编辑密钥(其他类型 - 令牌类型)

① 数据(数据注册):显示所选密钥的详细数据。

② 保存按钮:保存输入的信息。