在 v1.12 中增加 k8s 容器的启动门槛
Increase startup threshold for k8s container in v1.12
按照文档 here,我可以像这样设置容器启动的阈值:
startupProbe:
httpGet:
path: /healthz
port: liveness-port
failureThreshold: 30
periodSeconds: 10
很遗憾,startupProbe.failureThreshold
似乎与我们当前的 k8s 版本 (1.12.1) 不兼容:
unknown field "startupProbe" in io.k8s.api.core.v1.Container; if you choose to ignore these errors, turn validation off with --validate=false
有解决办法吗?我想给容器一个大约 40 分钟以上的启动时间。
是的,startupProbe
是 introduced with 1.16 - 所以你不能在 Kubernetes 1.12 中使用它。
我猜您正在定义 livenessProbe
- 因此解决问题的最简单方法是删除 livenessProbe
。大多数应用程序不需要(有些甚至不需要 readinessProbe
)。另请参阅这篇优秀文章:Liveness Probes are Dangerous.
如果您有探测器,您可以指定 initialDelaySeconds
并使其成为足以让您的容器启动的大值。
如果你根本不关心探测器,那么你可以让它执行一个永远不会失败的命令,例如whoami
从下面的示例中获取您需要的内容:
readinessProbe:
exec:
command:
- whoami
initialDelaySeconds: 2400
periodSeconds: 5
如果需要,您可以为 livenessProbe
执行相同的配置。
我知道这不是这个问题的答案,但可能会有用...
“startupProbes”随 k8s 1.16+ 一起提供。
如果你起诉 helm,你可以在你的模板中用这个包围你的块 startupProbes:
{{- if (semverCompare ">=1.16-0" .Capabilities.KubeVersion.GitVersion) }}
startupProbe:
httpGet:
path: /healthz
port: liveness-port
failureThreshold: 30
periodSeconds: 10
{{- end }}
按照文档 here,我可以像这样设置容器启动的阈值:
startupProbe:
httpGet:
path: /healthz
port: liveness-port
failureThreshold: 30
periodSeconds: 10
很遗憾,startupProbe.failureThreshold
似乎与我们当前的 k8s 版本 (1.12.1) 不兼容:
unknown field "startupProbe" in io.k8s.api.core.v1.Container; if you choose to ignore these errors, turn validation off with --validate=false
有解决办法吗?我想给容器一个大约 40 分钟以上的启动时间。
是的,startupProbe
是 introduced with 1.16 - 所以你不能在 Kubernetes 1.12 中使用它。
我猜您正在定义 livenessProbe
- 因此解决问题的最简单方法是删除 livenessProbe
。大多数应用程序不需要(有些甚至不需要 readinessProbe
)。另请参阅这篇优秀文章:Liveness Probes are Dangerous.
如果您有探测器,您可以指定 initialDelaySeconds
并使其成为足以让您的容器启动的大值。
如果你根本不关心探测器,那么你可以让它执行一个永远不会失败的命令,例如whoami
从下面的示例中获取您需要的内容:
readinessProbe:
exec:
command:
- whoami
initialDelaySeconds: 2400
periodSeconds: 5
如果需要,您可以为 livenessProbe
执行相同的配置。
我知道这不是这个问题的答案,但可能会有用...
“startupProbes”随 k8s 1.16+ 一起提供。
如果你起诉 helm,你可以在你的模板中用这个包围你的块 startupProbes:
{{- if (semverCompare ">=1.16-0" .Capabilities.KubeVersion.GitVersion) }}
startupProbe:
httpGet:
path: /healthz
port: liveness-port
failureThreshold: 30
periodSeconds: 10
{{- end }}