我正在尝试部署包含运行状况检查终结点的应用程序。如果失败,应销毁 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/