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 两种 Opaque 和 kubernetes.io/dockerconfigjson 格式。
- Opaque:以键/值格式注册配置信息的方法。(详细说明可以在环境变量列表部分找到)。
- kubernetes.io/dockerconfigjson: 一种注册身份验证信息以访问镜像注册表的方法。(详细说明可以在环境变量列表部分找到)。
⑤ 数据(数据注册):以类似输入配置数据的方式输入数据。
- 键:环境变量的键。
- 值:环境变量的值。
- 环境变量:可以注入并在实际应用中使用的环境名称。
- Spring 属性(可选):输入映射到 application.yaml 文件中属性的变量名称。
⑥ 添加按钮:您可以输入多个键值数据对,并为每个新数据点击添加按钮。
⑦ 删除按钮:删除特定的键值数据。
⑧ 保存:保存输入的信息以创建密钥。
创建密钥 (kubernetes.io/dockerconfigjson 类型)
本节提供了关于 dockerconfigjson 类型的密钥创建页面上每个项目的详细描述。
① 类型:选择您是要创建 ConfigMap 还是 Secret。
② 名称:输入密钥的名称。
③ 命名空间:从配置文件中注册的命名空间列表中选择密钥的命名空间。
④ 密钥类型:密钥支持 Opaque 和 kubernetes.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(文件)
本节提供了详细描述。
① 挂载路径:如果选择了文件格式,请输入文件将在应用程序中挂载的路径。
② 文件注册:添加新的配置文件或修改现有文件。
编辑秘密(其他类型 - 令牌类型)
① 数据(数据注册):显示所选秘密的详细数据。
② 保存按钮:保存输入的信息。