簡體   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