设置Pod重启限制

kpbwa7wx  于 2022-09-19  发布在  Docker
关注(0)|答案(2)|浏览(386)

我们可以设置示例重启限制,就像Kubernetes中的Docker Sarm一样吗?
Docker群集重新启动策略(_P):

condition: any
    delay: 60s
    max_attempts: 2
    window: 60s

或任何其他方式,因为K8类部署不支持重启策略neveronfailure

我的工作.yaml:-

apiVersion: apps/v1
kind: Deployment
metadata:
  name: xyz
  labels:
    app: xyz
spec:
  replicas: 1
  selector:
    matchLabels:
      app: xyz
  template:
    metadata:
      labels:
        app: xyz
    spec:
      containers:
      - name: xyz
        image: x.y.z
        imagePullPolicy: IfNotPresent
      imagePullSecrets:
      - name: x
      restartPolicy: Never
  • 错误*is invalid: spec.template.spec.restartPolicy: Unsupported value: "Never": supported values: "Always"
wfypjpf4

wfypjpf41#

不幸的是,这是不可能的。在官方文件中提到,它只允许Always
仅允许.spec.template.spec.restartPolicy等于Always,如果未指定,则这是默认设置。

DaemonSetStatefulSet的情况相同。

Deploymentconcept有关,所有Pod必须处于Running状态,Pod不能失败或无响应。
部署代表一组没有唯一身份的多个相同的Pod。部署运行应用程序的多个副本,并自动替换出现故障或变得无响应的任何示例。通过这种方式,部署有助于确保您的应用程序的一个或多个示例可用于服务用户请求。部署由Kubernetes部署控制器管理。

默认情况下,Deployment自动创建ReplicaSet,该ReplicaSet也负责Pod状态。

ReplicaSet是用字段定义的,包括指定如何标识它可以获取的Pod的选择器、指示它应该维护多少个Pod的副本数量,以及指定它应该创建的新Pod的数据以满足副本数量标准的Pod模板。然后,ReplicaSet通过根据需要创建和删除Pod来实现其目的,以达到所需的数量。当ReplicaSet需要创建新Pod时,它使用其Pod模板。

只有podjob种类能够使用具有NeveronFailure值的restartPolicy

j7dteeu8

j7dteeu82#

运行kubectl run --help | grep restart

您将看到如下所示的重新启动策略设置

--restart='Always': The restart policy for this Pod.  
Legal values [Always, OnFailure, Never].  
If set to 'Always' a deployment is created, if set to 'OnFailure' a job is created, 
if set to 'Never', a regular pod is created. 
For the latter two --replicas must be 1.  Default 'Always', for CronJobs `Never`.

注意:名为maxRetries的新选项有一个PR,但它当前已过时且不可用。

相关问题