Рекомендованный метод управления контейнерами конфигурации среды, работающими в контейнере, осуществляется с использованием configmap
. See the docs here.Kubernetes: Конфигурация управляющей среды
Это замечательно, хотя у нас есть контейнеры, для которых требуется огромное количество переменных окружения, это будет только расширяться в будущем. Используя предписанный метод configmap
, это становится нелегким и трудно управляемым.
Например, простой файл deplyment становится массовым:
apiVersion: v1
kind: Service
metadata:
name: my-app-api
labels:
name: my-app-api
environment: staging
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 80
protocol: TCP
name: http
selector:
name: my-app-api
environment: staging
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: my-app-api
spec:
replicas: 2
revisionHistoryLimit: 10
template:
metadata:
labels:
name: my-app-api
environment: staging
spec:
containers:
- name: my-app-api
imagePullPolicy: Always
image: myapp/my-app-api:latest
ports:
- containerPort: 80
env:
- name: API_HOST
value: XXXXXXXXXXX
- name: API_ENV
value: XXXXXXXXXXX
- name: API_DEBUG
value: XXXXXXXXXXX
- name: API_KEY
value: XXXXXXXXXXX
- name: EJ_API_ENDPOINT
value: XXXXXXXXXXX
- name: WEB_HOST
value: XXXXXXXXXXX
- name: AWS_ACCESS_KEY
value: XXXXXXXXXXX
- name: AWS_SECRET_KEY
value: XXXXXXXXXXX
- name: CDN
value: XXXXXXXXXXX
- name: STRIPE_KEY
value: XXXXXXXXXXX
- name: STRIPE_SECRET
value: XXXXXXXXXXX
- name: DB_HOST
value: XXXXXXXXXXX
- name: MYSQL_ROOT_PASSWORD
value: XXXXXXXXXXX
- name: MYSQL_DATABASE
value: XXXXXXXXXXX
- name: REDIS_HOST
value: XXXXXXXXXXX
imagePullSecrets:
- name: my-registry-key
Есть ли альтернативный легко внедрить центральную конфигурацию среды?
UPDATE
Это было предложено для 1.5
хотя не делают разрез и выглядит, как он будет включен в 1.6
. Пальцы скрещены ...
Именно то, что мы должны были бы. Любой ETA на v1.5 хахаа? – AndrewMcLagan
Конец 2016 года, так что, надеюсь, не слишком долго ждать, предполагая, что это действительно делает его. –