我的广告连播具有以下配置:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: my-app
labels:
app: my-app
spec:
serviceName: my-app
replicas: 1
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
restartPolicy: Never
containers:
- name: my-app
image: myregistry:443/mydomain/my-app
imagePullPolicy: Always
并且无需重新启动策略即可部署良好。但是,我不希望该过程一旦完成就再次运行,因此我添加了“ restartPolicy:从不”。不幸的是,当我尝试部署时出现以下错误:
Error from server (Invalid): error when creating "stack.yaml": StatefulSet.apps "my-app" is invalid: spec.template.spec.restartPolicy: Unsupported value: "Never": supported values: "Always"
我想念什么?
谢谢
答案 0 :(得分:3)
请参阅https://github.com/kubernetes/kubernetes/issues/24725
似乎仅支持“始终”。
答案 1 :(得分:1)
您应该使用Job controller而不是StatefulSet:
一项工作会创建一个或多个Pod,并确保指定数量的 他们成功终止。吊舱成功完成后,工作 跟踪成功的完成情况。
看看Handling Pod and Container Failures部分,它说明了将restartPolicy
与值OnFailure
或Never
结合使用,并结合了其他配置,例如parallelism
的效果。 ,completions
和backoffLimit
。