Azure kubernetes - python 读取 configmap?
Azure kubernetes - python to read configmap?
我正在尝试对 python 应用程序进行 Dockerize,并希望从 configmap 中读取配置设置。如何读取 python 中的配置映射?
使用配置文件创建一个configMap:
$ kubectl create configmap my-config --from-file my-config.file
在您的 Pod 容器中安装 configMap 并在您的应用程序中使用它:
volumeMounts:
- name: config
mountPath: "/config-directory/my-config.file"
subPath: "my-config.file"
volumes:
- name: config
configMap:
name: my-config
现在,您的配置文件将在 /config-directory/my-config.file
中可用。您可以从您的 Python 代码中读取它,如下所示:
config = open("/config-directory/my-config.file", "r")
您也可以使用 configMap 的数据作为容器的环境 - Define container environment variables using configMap data
config = os.environ['MY_CONFIG']
在为 Kubernetes 创建应用程序时,最好遵循 The Twelve Factor App principles. There is one item about Config 建议将特定于环境的应用程序设置存储为 环境变量。
在Python环境变量可以用os.environ读取,例子:
import os
print(os.environ['DATABASE_HOST'])
print(os.environ['DATABASE_USER'])
并且您可以使用 kubectl
创建这些环境变量:
kubectl create configmap db-settings --from-literal=DATABASE_HOST=example.com,DATABASE_USER=dbuser
我建议使用 kubectl kustomize
处理您的环境设置,如 Declarative Management of Kubernetes Objects Using Kustomize, especially with the configmapGenerator 中所述,并将它们应用于不同的环境:
kubectl apply -k <environment>/
我正在尝试对 python 应用程序进行 Dockerize,并希望从 configmap 中读取配置设置。如何读取 python 中的配置映射?
使用配置文件创建一个configMap:
$ kubectl create configmap my-config --from-file my-config.file
在您的 Pod 容器中安装 configMap 并在您的应用程序中使用它:
volumeMounts:
- name: config
mountPath: "/config-directory/my-config.file"
subPath: "my-config.file"
volumes:
- name: config
configMap:
name: my-config
现在,您的配置文件将在 /config-directory/my-config.file
中可用。您可以从您的 Python 代码中读取它,如下所示:
config = open("/config-directory/my-config.file", "r")
您也可以使用 configMap 的数据作为容器的环境 - Define container environment variables using configMap data
config = os.environ['MY_CONFIG']
在为 Kubernetes 创建应用程序时,最好遵循 The Twelve Factor App principles. There is one item about Config 建议将特定于环境的应用程序设置存储为 环境变量。
在Python环境变量可以用os.environ读取,例子:
import os
print(os.environ['DATABASE_HOST'])
print(os.environ['DATABASE_USER'])
并且您可以使用 kubectl
创建这些环境变量:
kubectl create configmap db-settings --from-literal=DATABASE_HOST=example.com,DATABASE_USER=dbuser
我建议使用 kubectl kustomize
处理您的环境设置,如 Declarative Management of Kubernetes Objects Using Kustomize, especially with the configmapGenerator 中所述,并将它们应用于不同的环境:
kubectl apply -k <environment>/