Kubernetes部署RollingUpdate不添加新的环境变量

时间:2016-09-16 05:42:30

标签: kubernetes

我在kubernetes 1.3.5上,我们正在使用带有rollupdates的Deployments来更新我们集群中的pod。但是,在rollingupdate上,新添加的环境变量永远不会添加到pod中,是否按设计?有什么方法可以解决这个问题?

以下是示例部署yaml文件。基本上部署是使用第一个版本部署的,然后我们使用新添加的env变量NEW_KEY更新了yaml,并且基本上运行了滚动更新。但新的环境并未出现在PODS中。

第一版yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: APP_NAME-deployment labels: name: APP_NAME environment: DEV spec: revisionHistoryLimit: 2 strategy: type: RollingUpdate replicas: 2 template: metadata: labels: name: APP_NAME environment: DEV spec: containers: - name: APP_NAME image: repo.app_name:latest env: - name: NODE_ENV value: 'development' - name: APP_KEY value: '123'

更新了yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: APP_NAME-deployment labels: name: APP_NAME environment: DEV spec: revisionHistoryLimit: 2 strategy: type: RollingUpdate replicas: 2 template: metadata: labels: name: APP_NAME environment: DEV spec: containers: - name: APP_NAME image: repo.app_name:latest env: - name: NODE_ENV value: 'development' - name: APP_KEY value: '123' - name: NEW_KEY value: 'new'

1 个答案:

答案 0 :(得分:0)

您可以将env变量存储在ConfigMap或secretKeyRef中。对于ConfigMap,您可以执行以下操作:

      env:
        - name: SPECIAL_LEVEL_KEY
          valueFrom:
            configMapKeyRef:
              name: node_env
              key: node.dev

或带有secretKeyRef:

      env:
        - name: SPECIAL_LEVEL_KEY
          valueFrom:
            secretKeyRef:
              name: node_env
              key: node.dev
相关问题