繁体   English   中英

如何在 kubernetes 中定义和共享 pods 环境变量到 pod 的应用程序

[英]how to define and share pods environment variable to pod's apps in kubernetes

我正在 kubernetes 中部署一些应用程序,我的应用程序使用名为 apollo 的配置管理工具。该工具需要通过以下方式定义应用程序运行环境(开发\\测试\\生产......):1.java args 2 .application.properties 3./etc/settings/data.properties。 现在我在 Kubernetes 中运行应用程序,问题是,如何定义运行环境变量?

1.如果我选择java args,那么我应该保留一些脚本,如: start-develop-env.sh/start-test-env.sh/start-pro-env.sh

2.如果我选择application.properties ,我应该保留application-develop.properties/application-test.properties .....

3.如果我选择/etc/settings/data.properties ,是不可能登录每个/etc/settings/data.properties容器定义每个环境的配置文件的。

解决问题的最佳方法是什么? 在 kubernetes 部署 yaml 中写入,我的应用程序无法读取它(在一个地方的批处理 pods 集合中定义变量更好)。

您可以使用 configmap 实现 #2 和 #3。 您可以将属性文件定义为配置映射,并将其挂载到容器中,作为 application.properties 或 data.properties。 k8s 文档中的相关部分是:

https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/

使用 java args 可能更复杂。 您可以按照您的说法定义一个脚本,然后运行该脚本来设置容器的环境。 您也可以将该脚本存储为 ConfigMap。 或者,您可以在部署 yaml 中定义单独的环境变量,定义包含属性的 ConfigMap,并从 configmap 填充这些环境变量。 上一节还介绍了如何从 configmap 设置环境变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM