2016-09-21 7 views
1

ポッドで実行されている環境設定コンテナを管理するための推奨方法は、configmapの使用です。 See the docs hereKubernetes:環境設定の管理

これは大変ですが、大量の環境変数を必要とするコンテナがありますが、これは今後拡張されます。規定の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.6に含まれるように見えるしませんでしたが、これは1.5のために提案されました。指が交差しました...

答えて

0

これを容易にすることを目指して、現在は1.53にターゲットされているproposalがあります。提案されているように、ConfigMapから一度にすべての変数を取り出すことができます。それぞれの変数を個別に書き出す必要はありません。

実装された場合、それはあなたがこのような何かできるようになる:

警告:これは実際にはまだ動作しませんを!

ConfigMap:

apiVersion: v1 
data: 
    space-ships: 1 
    ship-type: battle-cruiser 
    weapon: laser-cannon 
kind: ConfigMap 
metadata: 
    name: space-config 

展開:私たちは、必要があると思いまさに

apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: space-simulator 
spec: 
    template: 
    metadata: 
     labels: 
     app: space-simulator 
    spec: 
     containers: 
     - name: space-simulator 
     image: foo/space-simulator 
     # This is the magic piece that would allow you to avoid all that boilerplate! 
     - envFrom: 
     configMap: space-config 
+0

。 v1.5 haha​​のETAはありますか? – AndrewMcLagan

+1

2016年末は、これが実際にそれを行うと仮定して、待つのが長すぎるとは限りません。 –