如何在CrashLoopBackOff时自动停止滚动更新?

Han*_*rus 6 kubernetes google-kubernetes-engine

我使用 Google Kubernetes Engine,并故意在代码中添加错误。我希望滚动更新会在发现状态为 时停止CrashLoopBackOff,但事实并非如此。

在这个页面中,他们说..

Deployment 控制器将自动停止错误的部署,并停止扩展新的 ReplicaSet。这取决于您指定的rollingUpdate 参数(特别是maxUnavailable)。

但它并没有发生,只是状态而已吗ImagePullBackOff

以下是我的配置。

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: volume-service
  labels:
    group: volume
    tier: service
spec:
  replicas: 4
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 2
      maxSurge: 2
  template:
    metadata:
      labels:
        group: volume
        tier: service
    spec:
      containers:
      - name: volume-service
        image: gcr.io/example/volume-service:latest
Run Code Online (Sandbox Code Playgroud)

PS我已经阅读了活性/就绪探针,但我不认为它可以阻止滚动更新?或者是吗?

Han*_*rus 3

事实证明,我只需要设置,当新的副本集具有状态或类似的minReadySeconds状态时,它就会停止滚动更新。所以现在旧的replicaSet仍然可用并且没有更新。CrashLoopBackOffExited with status code 1

这是新的配置。

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: volume-service
  labels:
    group: volume
    tier: service
spec:
  replicas: 4
  minReadySeconds: 60
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 2
      maxSurge: 2
  template:
    metadata:
      labels:
        group: volume
        tier: service
    spec:
      containers:
      - name: volume-service
        image: gcr.io/example/volume-service:latest
Run Code Online (Sandbox Code Playgroud)

谢谢大家的帮助!