Kubernetes 当存储库映像更改时重新部署Google容器控制器

Kubernetes 当存储库映像更改时重新部署Google容器控制器,kubernetes,Kubernetes,我是否有办法复制cloud.docker上的行为,在cloud.docker中,可以使用最新映像手动重新部署服务,也可以在更新存储库映像时自动重新部署服务 现在,我正在使用控制器和服务文件在shell脚本中手动执行类似操作: kubectl delete -f ./ticketing-controller.yaml || true kubectl delete -f ./ticketing-service.yaml || true kubectl create -f ./ticketing-co

我是否有办法复制cloud.docker上的行为,在cloud.docker中,可以使用最新映像手动重新部署服务,也可以在更新存储库映像时自动重新部署服务

现在,我正在使用控制器和服务文件在shell脚本中手动执行类似操作:

kubectl delete -f ./ticketing-controller.yaml || true
kubectl delete -f ./ticketing-service.yaml || true
kubectl create -f ./ticketing-controller.yaml
kubectl create -f ./ticketing-service.yaml
即使这样看起来也有点笨手笨脚,但效果很好。我真的错过了cloud.docker上的自动重新部署功能。

根据:

假设您运行的是nginx的1.7.9版:

$ kubectl run my-nginx --image=nginx:1.7.9 --replicas=3
deployment "my-nginx" created
要更新到1.9.1版,只需更改
.spec.template.spec.containers[0]。图像
from
nginx:1.7.9
to nginx:1.9.1,使用kubectl命令

$ kubectl edit deployment/my-nginx
就这样!部署将以声明方式更新部署的nginx 应用程序在幕后逐步进行。它确保只有 某些旧复制副本在运行时可能会停机 已更新,并且只能创建一定数量的新副本 高于所需的豆荚数

根据:

假设您运行的是nginx的1.7.9版:

$ kubectl run my-nginx --image=nginx:1.7.9 --replicas=3
deployment "my-nginx" created
要更新到1.9.1版,只需更改
.spec.template.spec.containers[0]。图像
from
nginx:1.7.9
to nginx:1.9.1,使用kubectl命令

$ kubectl edit deployment/my-nginx
就这样!部署将以声明方式更新部署的nginx 应用程序在幕后逐步进行。它确保只有 某些旧复制副本在运行时可能会停机 已更新,并且只能创建一定数量的新副本 高于所需的豆荚数


删除控制器yaml文件本身不会删除kubernetes中的实际控制器,除非您有特殊配置这样做。如果有多个实例正在运行,那么删除控制器可能不是您想要的,因为它会删除正在运行的应用程序的所有实例。您真正想要做的是对应用程序执行滚动更新,以增量方式将运行旧映像的容器替换为运行新映像的容器

您可以通过以下方式手动执行此操作:

  • 对于
    部署
    控制器,更新yaml文件映像并执行
    kubectl apply
  • 对于
    ReplicationController
    更新yaml文件并执行
    kubectl rollingupdate
    。见:
  • 使用v1.3,您将能够使用
    kubectl set image
  • 或者,您可以使用PaaS在回购中更新图像时自动推送图像。以下是几个Paas选项的不完整列表:

    • 红帽OpenShift
    • 纺纱机
    • Deis工作流

    删除控制器yaml文件本身不会删除kubernetes中的实际控制器,除非您有特殊配置。如果有多个实例正在运行,那么删除控制器可能不是您想要的,因为它会删除正在运行的应用程序的所有实例。您真正想要做的是对应用程序执行滚动更新,以增量方式将运行旧映像的容器替换为运行新映像的容器

    您可以通过以下方式手动执行此操作:

  • 对于
    部署
    控制器,更新yaml文件映像并执行
    kubectl apply
  • 对于
    ReplicationController
    更新yaml文件并执行
    kubectl rollingupdate
    。见:
  • 使用v1.3,您将能够使用
    kubectl set image
  • 或者,您可以使用PaaS在回购中更新图像时自动推送图像。以下是几个Paas选项的不完整列表:

    • 红帽OpenShift
    • 纺纱机
    • Deis工作流

    这有点不同,因为我使用的是复制控制器。但我仍然希望在docker注册表被触动时自动重新部署。哦,也许有一些增值服务可以帮我做到这一点:)。这有点不同,因为我使用的是复制控制器。但我仍然希望在docker注册表被触动时自动重新部署。哦,也许有一些增值服务可以帮我做到这一点:)。事实上,我被服务和控制器吹走了。滚动更新似乎是生产的方式。我只是处理暂存/测试服务器,所以我不关心停机。我也可以使用cloud.docker来推动google计算引擎,但我应该会提出一个纯容器引擎解决方案。事实上,我已经完全放弃了服务和控制器。滚动更新似乎是生产的方式。我只是处理暂存/测试服务器,所以我不关心停机。我也可以使用cloud.docker来推动google计算引擎,但我应该会提出一个纯容器引擎解决方案。