跳到主要内容

Environment Variable Management

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

备注

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

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

环境变量列表

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

① Env/Properties 配置信息列表。

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

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

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

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

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

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

③ 创建一个新的 Secret/ConfigMap 资源。

④ 删除 Secret/ConfigMap 信息。

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

环境变量创建

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

创建 ConfigMap(文件类型)

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

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

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

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

④ ConfigMap 类型:ConfigMap 支持属性和文件格式。具体如下:

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

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

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

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

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

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

创建 ConfigMap(属性类型)

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

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

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

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

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

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

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

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

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

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

创建一个秘密(不透明类型)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Opaque:以键/值格式注册配置信息的方法。(详细说明可以在环境变量列表部分找到。)
  • kubernetes.io/dockerconfigjson:一种注册身份验证信息以访问镜像注册表的方法。(详细说明可以在环境变量列表部分找到。) ⑤ 镜像注册表:这是在项目设置中注册的镜像注册表列表。选择您想要使用正在创建的密钥进行身份验证的镜像注册表。

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

导入环境变量

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

导入 ConfigMap(属性类型)

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

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

② 名称:输入 ConfigMap 的名称。

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

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

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

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

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

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

导入 ConfigMap(文件类型)

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

类型、名称和命名空间信息与之前设置的相同。 ① ConfigMap 类型:ConfigMaps 支持属性和文件格式。属性:一种以键/值格式注册配置信息的格式。文件:用于注册现有配置文件的格式。例如,使用此格式来分离和管理 SpringBoot application.yaml 文件。

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

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

④ 文件注册:显示所选 ConfigMap 的配置信息。

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

导入密钥 (Env)

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

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

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

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

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

导入密钥 (File)

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

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

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

③ 挂载路径:密钥数据将在应用程序中挂载的路径。 ④ readOnly: 设置挂载的 Secret 是否为只读。

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

环境变量编辑

编辑 ConfigMap(文件)

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

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

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

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

编辑 ConfigMap(属性)

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

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

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

编辑 Secret(kubernetes.io/dockerconfigjson)

类型为 dockerconfigjson 的 Secret 不能被编辑。

编辑 Secret(不透明)

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

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

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

编辑 Secret(文件)

本节提供了详细描述。

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

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

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

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

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