Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
秘密更新情况下的Kubernetes滚动更新_Kubernetes_Google Kubernetes Engine - Fatal编程技术网

秘密更新情况下的Kubernetes滚动更新

秘密更新情况下的Kubernetes滚动更新,kubernetes,google-kubernetes-engine,Kubernetes,Google Kubernetes Engine,我有一个复制控制器,其中一个副本使用一个秘密。当秘密值更改时,如何使用最新的秘密值更新或重新创建其(单独的)pod而不停机 我当前的解决方法是增加Replication Controller中的副本数量,删除旧的POD,并将副本计数更改回其原始值 是否有命令或标志来引导滚动更新,保留相同的容器图像和标签?当我尝试这样做时,它会拒绝我的尝试,并显示以下消息: error: Specified --image must be distinct from existing container imag

我有一个复制控制器,其中一个副本使用一个秘密。当秘密值更改时,如何使用最新的秘密值更新或重新创建其(单独的)pod而不停机

我当前的解决方法是增加Replication Controller中的副本数量,删除旧的POD,并将副本计数更改回其原始值

是否有命令或标志来引导滚动更新,保留相同的容器图像和标签?当我尝试这样做时,它会拒绝我的尝试,并显示以下消息:

error: Specified --image must be distinct from existing container image

如果我理解正确,部署应该是您想要的

部署支持pod模板中几乎所有字段的滚动更新

请参阅几个问题,并对问题进行合理的描述,我怀疑滚动更新方法很快就会出现(就像Kubernetes中的大多数内容一样),尽管不太可能用于1.3.0。同样的问题也适用于更新ConfigMaps

每当部署吊舱规范中的任何内容发生更改时(例如,通常将
图像
更改为新版本),Kubernetes将进行滚动更新,在部署吊舱规范中设置一个env变量(例如
重新启动

然后,当您更新机密/configmap后,在部署中增加env值(通过
kubectl apply
,或
patch
,或
edit
),Kubernetes将启动部署的滚动更新

部署规范示例:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: test-nginx
spec:
  replicas: 2
  template:
    metadata:
    spec:
      containers:
      - name: nginx
        image: "nginx:stable"
        ports:
        - containerPort: 80
        - mountPath: /etc/nginx/conf.d
          name: config
          readOnly: true
        - mountPath: /etc/nginx/auth
          name: tokens
          readOnly: true
        env:
        - name: RESTART_
          value: "13"
      volumes:
        - name: config
          configMap:
            name: test-nginx-config
        - name: tokens
          secret:
            secretName: test-nginx-tokens
两个小贴士:

  • 您的环境变量名不能以
    开头,否则它会以某种方式神奇地消失
    
  • 如果重新启动变量使用数字,则需要将其用引号括起来

部署没有帮助,因为.spec.template中没有更改。机密名称相同,但其值已更改