kubernetes - 从部署配置中配置 pod 的重启策略
问题描述
我们正在使用 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:不支持的值:“Never”:支持的值:“Always”
Kubernetes 文档以及有关重启策略的Openshift 文档显示,可以使用 Always、Never 或 OnFailure 配置 pod。
那么如何从部署配置中做到这一点?
解决方案
部署只允许 Always 用于 restartPolicy。请参阅此文档https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#pod-template
另请参阅有关相同问题的问题报告。 https://github.com/kubernetes/kubernetes/issues/24725
仅允许 .spec.template.spec.restartPolicy 等于 Always,如果未指定,则为默认值。
注意:对于 DaemonSets、ReplicaSets、ReplicationController 也是一样的情况。
推荐阅读
- android - 在库中使用 Kotlin
- django - Coreapi 字段在招摇中显示错误的名称(数据)
- jmeter - 控制 Jmeter 中的特定代码块以停止和启动新线程?
- java - 捕获异常,重新抛出断言
- linkedin - 无法通过api获取linkedin公司页面的视频帖子
- angular - 将哈希添加到 css 文件名
- labview - Labview VISA 超时,中止问题
- visual-studio - Deploying Azure Function Slot from Visual Studio deploys Production
- amazon-web-services - AWS 使用 DynamoDB Lambda 配置 Kinesis Stream
- ios - 隐藏状态 bas 的约束警告