Мы используем Kubernetes v1.1.0-beta, и мне любопытно, поддерживает ли Kubernetes env_file
, как Docker Compose? При создании Pod / ReplicationController он будет читать файл, указанный env_file, и устанавливать переменные для этого модуля. Это вещь или просто env
карта?
Нет. Kubernetes не поддерживает evv_file
на данный момент. Вам нужно будет указать key=value
пары для переменных окружения.
Для этого вы можете использовать карту конфигурации. Таким образом, вы развертываете конфигурационную карту с нужными парами ключ-значение, она остается стабильной при развертывании. Вы даже можете развернуть несколько карт конфигурации, чтобы иметь разные значения для разных сред.
Затем в вашем файле pod yaml вы должны сделать что-то вроде этого, чтобы выставить значения configmap как переменную env
env:
# Define the environment variable
- name: SPECIAL_LEVEL_KEY
valueFrom:
configMapKeyRef:
# The ConfigMap containing the value you want to assign to SPECIAL_LEVEL_KEY
name: special-config
# Specify the key associated with the value
key: special.how
Подробнее здесь: https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#define-container-environment-variables-using-configmap-data
Если есть какие-либо конфиденциальные данные (например, пароли, URI подключения к базе данных и т. Д.), Вам следует использовать секреты. В отличие от конфигурационных карт, секреты скрыты, поэтому вы не можете видеть значения из kubectl и т. Д., Что помогает скрыть / защитить ваши конфиденциальные данные.
Подробнее здесь -> https://kubernetes.io/docs/concepts/configuration/secret/