[英]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.