在就绪探测失败时销毁未准备好的 Pod



我正在尝试部署包含运行状况检查终结点的应用程序。如果失败,应销毁 Pod ,但 K8s 会将 Pod 保持为"正在运行"状态。

配置:

readinessProbe:
httpGet:
path: /healthcheck
port: 3001
initialDelaySeconds: 5
periodSeconds: 5
successThreshold: 1

荚:

docs-app-768b47bc69-lrlcf      0/1       Running   0          1m

那么,有没有办法在准备探测失败时销毁 Pod?

这不是探测器的用途。LivenessProbe,如果发生故障,重试配置的次数后将"重新启动"Pod。相反,就绪探测可用于指示 Pod 在故障期间不应提供流量。探测不是用来运行或中止 pod,如果需要,则必须编写一个插件来监视 pod 状态并在发生故障时删除副本或部署。

将其与 Liveness 配对以使其更有效并指定资源限制。

resources:
limits:
cpu: 300m
memory: 200Mi
requests:
cpu: 300m
memory: 200Mi  
readinessProbe:
httpGet:
path: /api/health
port: 80
initialDelaySeconds: 15
periodSeconds: 20
successThreshold: 1
failureThreshold: 3
livenessProbe:
httpGet:
path: /api/health
port: 80
initialDelaySeconds: 25
periodSeconds: 25
successThreshold: 1
failureThreshold: 3    

就绪性探测用于服务就绪(如果它通过,则在负载均衡器中,如果不是,则不是(,它可用于切断到过载 Pod 的流量并让它刷新它。

活体探测用于杀死不健康且没有恢复希望的豆荚。

文档非常清楚:https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/

最新更新