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