Deployment 库伯内特斯部署。如何更改滚动更新的容器环境变量?

Deployment 库伯内特斯部署。如何更改滚动更新的容器环境变量?,deployment,docker,kubernetes,google-kubernetes-engine,Deployment,Docker,Kubernetes,Google Kubernetes Engine,下面是我如何在谷歌上使用kunbernetes 我有一个节点应用程序,比如说图书门户 节点应用程序正在为配置使用环境变量 第1步:我创建了docker文件并按下 gcr.io/<project-id>/book-portal:v1 gcr.io/<project-id>/book-portal:v2 步骤4:使用获取公共ip kubectl get services book-portal 现在假设我在下一版本中添加了新功能和新配置 因此要推出新版本v2 第1步:我

下面是我如何在谷歌上使用kunbernetes

我有一个节点应用程序,比如说图书门户

节点应用程序正在为配置使用环境变量

第1步:我创建了docker文件并按下

gcr.io/<project-id>/book-portal:v1
gcr.io/<project-id>/book-portal:v2
步骤4:使用获取公共ip

kubectl get services book-portal
现在假设我在下一版本中添加了新功能和新配置

因此要推出新版本v2

第1步:我创建了docker文件并按下

gcr.io/<project-id>/book-portal:v1
gcr.io/<project-id>/book-portal:v2
  • 任何人都可以指导通过配置的最佳实践是什么 kubernetes上的节点内应用程序
  • 我应该如何处理环境变量 滚动更新期间的更改

  • 我认为最好的选择是在k8s中使用configmaps,然后更改pod模板以从configmap中获取环境变量值。请参阅

    编辑:我道歉我在这里放错了链接。我已经更新了TL;博士 您可以执行以下操作

    apiVersion: v1
    kind: ConfigMap
    metadata:
     name: special-config
    namespace: default
    data:
     special.how: very
     special.type: charm
    
    然后吊舱的使用情况可以是这样的

    apiVersion: v1
    kind: Pod
    metadata:
     name: dapi-test-pod
    spec:
      containers:
      - name: test-container
        image: gcr.io/google_containers/busybox
        command: [ "/bin/sh", "-c", "env" ]
        env:
          - name: SPECIAL_LEVEL_KEY
            valueFrom:
              configMapKeyRef:
                name: special-config
                key: special.how
          - name: SPECIAL_TYPE_KEY
            valueFrom:
              configMapKeyRef:
                name: special-config
                key: special.type
      restartPolicy: Never
    

    谢谢你的回复。你能为我的问题提供一个例子吗?很抱歉,我把错误的文档链接放在这里了,我已经更新了,还把那里的例子复制到了这里,供后人参考。如果答案是正确的,你能接受吗?
    image:gcr.io/<project-id>/book-portal:v2 
    
              - env:
                - name: ENV_VAR_KEY1
                  value: value1
                - name: ENV_VAR_KEY2
                  value: value2
                - name: ENV_VAR_KEY3
                  value: value3
                - name: ENV_VAR_KEY4
                  value: value4
    
    apiVersion: v1
    kind: ConfigMap
    metadata:
     name: special-config
    namespace: default
    data:
     special.how: very
     special.type: charm
    
    apiVersion: v1
    kind: Pod
    metadata:
     name: dapi-test-pod
    spec:
      containers:
      - name: test-container
        image: gcr.io/google_containers/busybox
        command: [ "/bin/sh", "-c", "env" ]
        env:
          - name: SPECIAL_LEVEL_KEY
            valueFrom:
              configMapKeyRef:
                name: special-config
                key: special.how
          - name: SPECIAL_TYPE_KEY
            valueFrom:
              configMapKeyRef:
                name: special-config
                key: special.type
      restartPolicy: Never