从部署配置中配置pod的重启策略

时间:2020-08-13 17:17:04

标签: kubernetes openshift

我们使用的是Openshift(Kubernetes的托管版本),我正在努力将部署配置创建的所有Pod的Pod重新启动策略从“始终”设置为“从不”,但是我不确定在Yaml中进行更改。

我们的部署配置如下:

kind: DeploymentConfig
metadata:
  generation: 19
  name: my-deployment-config
  namespace: my-deployment-config-namespace
  selfLink: >-
    ...
  uid: af918183-c780-11ea-8945-525400d3e4d9
spec:
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    name: my-selector
  strategy:
    activeDeadlineSeconds: 21600
    resources: {}
    rollingParams:
      intervalSeconds: 1
      maxSurge: 25%
      maxUnavailable: 25%
      timeoutSeconds: 600
      updatePeriodSeconds: 1
    type: Rolling
template:
    metadata:
      ...
    spec:
      containers:
        - image: >-
            (image source)
          imagePullPolicy: Always
          name: my-container
          ports:
            - containerPort: 8080
              protocol: TCP
          resources: {}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30

当我尝试将其中的restartPolicy从“始终”更改为“从不”时,我遇到了

无法处理资源。原因: DeploymentConfig.apps.openshift.io “ my-deployment-config”无效: spec.template.spec.restartPolicy:不支持的值:“从不”: 支持的值:“始终”

The Kubernetes documentation以及重新启动策略上的Openshift documentation显示,可以使用“始终”,“从不”或“失败”配置窗格。

那我该如何从部署配置中做到这一点?

1 个答案:

答案 0 :(得分:3)

部署仅对AlwaysPolicy启用Always。请参阅此文档https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#pod-template

还可以将问题报告回溯到很久以前。 https://github.com/kubernetes/kubernetes/issues/24725

仅允许一个等于Always的.spec.template.spec.restartPolicy,如果未指定,则为默认值。

注意:DaemonSet,ReplicaSets和ReplicationController的情况相同。