kubernetes - Kubernetes 活跃度探测
问题描述
如何为我的 Spring Boot 应用程序编写 kubernetes 就绪探针,启动大约需要 20 秒?我尝试按照Configure Liveness、Readiness 和 Startup Probes中的示例进行操作,但我不确定 Kubernetes 如何将状态码 200 确定为成功
apiVersion: v1
kind: Pod
metadata:
labels:
app: backend
name: liveness-http
spec:
containers:
- name: liveness
image: k8s.gcr.io/liveness
args:
- /server
livenessProbe:
httpGet:
path: /healthz
port: 8080
httpHeaders:
- name: Custom-Header
value: Awesome
initialDelaySeconds: 3
periodSeconds: 3
解决方案
Kubernetes kubelet 将/healthz
在您的应用程序的路径上发出一个 http 请求,并期望从该端点返回的 http 状态代码 200 以使探测成功。因此,您需要在休息控制器中有一个休息端点,它将从/healthz
. 实现它的一种简单方法是包含 spring boot 执行器依赖项并将 liveness probe path 更改为/actuator/health/liveness
. 默认情况下,Spring Boot 执行器带有一个休息控制器端点,该端点从/actuator/health/liveness
.
推荐阅读
- python - 如何将 Button 连接到新的 Canvas 窗口?
- database - How to handle "more than requested number of rows" in Oracle PL/SQL
- javascript - lit-element 不渲染用于复制/粘贴/打印的嵌套(子)组件
- bash - 输出流到输入
- ios - 如何为多个产品配置 xcode 项目?
- flutter - 在单击项目构建器 Flutter 的行视图时刷新 ListView.builder
- vue.js - 多参数 InertiaJS 路由
- r - 如何根据状态为图表着色
- terminal - tmux:如何判断窗格当前是否通过管道传输?
- swift - SwiftUI Preview 找不到使用过的框架的图像