我们可以设置示例重启限制,就像Kubernetes中的Docker Sarm一样吗?
Docker群集重新启动策略(_P):
condition: any
delay: 60s
max_attempts: 2
window: 60s
或任何其他方式,因为K8类部署不支持重启策略never
或onfailure
我的工作.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"
2条答案
按热度按时间wfypjpf41#
不幸的是,这是不可能的。在官方文件中提到,它只允许
Always
。仅允许
.spec.template.spec.restartPolicy
等于Always
,如果未指定,则这是默认设置。DaemonSet
和StatefulSet
的情况相同。与
Deployment
concept有关,所有Pod必须处于Running
状态,Pod不能失败或无响应。部署代表一组没有唯一身份的多个相同的Pod。部署运行应用程序的多个副本,并自动替换出现故障或变得无响应的任何示例。通过这种方式,部署有助于确保您的应用程序的一个或多个示例可用于服务用户请求。部署由Kubernetes部署控制器管理。
默认情况下,
Deployment
自动创建ReplicaSet,该ReplicaSet也负责Pod状态。ReplicaSet是用字段定义的,包括指定如何标识它可以获取的Pod的选择器、指示它应该维护多少个Pod的副本数量,以及指定它应该创建的新Pod的数据以满足副本数量标准的Pod模板。然后,ReplicaSet通过根据需要创建和删除Pod来实现其目的,以达到所需的数量。当ReplicaSet需要创建新Pod时,它使用其Pod模板。
只有
pod
和job
种类能够使用具有Never
和onFailure
值的restartPolicy
。j7dteeu82#
运行
kubectl run --help | grep restart
您将看到如下所示的重新启动策略设置
注意:名为
maxRetries
的新选项有一个PR,但它当前已过时且不可用。