
longhornio/livenessprobeCSI Livenessprobe 是遵循容器存储接口(CSI)规范的健康检查工具,主要用于监控 CSI 驱动的运行状态。作为 CSI 架构中的辅助组件,它通过定期探测 CSI 驱动的 gRPC 服务端点,验证驱动是否正常响应请求,确保存储服务的可用性。通常作为 Sidecar 容器部署在 CSI 驱动的 Pod 中,配合 Kubernetes 的 liveness/readiness 探针机制,实现故障自动恢复。
Controller/Node 服务)是否正常。unix://)和 TCP 端点(tcp://)。csi-provisioner、csi-node-driver-registrar 等)共同运行,提供健康状态监控。通过 docker run 直接运行容器,需挂载 CSI 驱动的 gRPC 端点(通常为 UNIX 域套接字文件),并指定探测参数:
bashdocker run -d \ --name csi-livenessprobe \ -v /path/to/csi/driver/socket:/csi/csi.sock \ # 挂载 CSI 驱动的套接字文件 quay.io/k8scsi/livenessprobe:v2.10.0 \ # 示例镜像(以实际镜像为准) --endpoint=unix:///csi/csi.sock \ # CSI 驱动的 gRPC 端点 --interval=10s \ # 探测间隔(默认 10s) --timeout=3s \ # 单次探测超时时间(默认 3s) --probe-path=/csi.v1.Identity/Probe # 探测的 gRPC 方法路径(默认 /csi.v1.Identity/Probe)
在 Kubernetes 中,通常将 CSI Livenessprobe 作为 Sidecar 容器嵌入 CSI 驱动的 Pod 配置(如 DaemonSet 或 Deployment):
yamlapiVersion: apps/v1 kind: DaemonSet metadata: name: csi-node-driver namespace: kube-system spec: template: spec: containers: # CSI 驱动主容器 - name: csi-driver image: <csi-driver-image> volumeMounts: - name: csi-socket-dir mountPath: /csi # CSI Livenessprobe Sidecar 容器 - name: liveness-probe image: quay.io/k8scsi/livenessprobe:v2.10.0 args: - --endpoint=unix:///csi/csi.sock - --interval=15s - --timeout=5s volumeMounts: - name: csi-socket-dir mountPath: /csi volumes: - name: csi-socket-dir hostPath: path: /var/lib/csi/sockets/pluginproxy/ type: DirectoryOrCreate
适用于本地调试 CSI 驱动时,通过 Docker Compose 启动驱动与 Livenessprobe 容器:
yamlversion: "3" services: csi-driver: image: <local-csi-driver-image> volumes: - csi-socket:/csi command: ["--endpoint=unix:///csi/csi.sock"] livenessprobe: image: quay.io/k8scsi/livenessprobe:v2.10.0 depends_on: - csi-driver volumes: - csi-socket:/csi command: - --endpoint=unix:///csi/csi.sock - --interval=5s - --timeout=2s volumes: csi-socket:
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
--endpoint | string | unix:///csi/csi.sock | CSI 驱动的 gRPC 服务端点(支持 unix:// 或 tcp:// 格式) |
--interval | duration | 10s | 健康检查间隔(格式:ns/us/ms/s/m/h,如 30s) |
--timeout | duration | 3s | 单次探测超时时间(超时未响应视为异常) |
--probe-path | string | /csi.v1.Identity/Probe | 需探测的 gRPC 方法路径(通常对应 CSI Identity 服务的 Probe 接口) |
--retries | int | 3 | 连续失败重试次数(超过次数后返回异常状态) |
| 环境变量名 | 对应参数 | 说明 |
|---|---|---|
CSI_ENDPOINT | --endpoint | CSI 驱动端点 |
LIVENESS_PROBE_INTERVAL | --interval | 探测间隔 |
LIVENESS_PROBE_TIMEOUT | --timeout | 探测超时时间 |
LIVENESS_PROBE_PATH | --probe-path | gRPC 方法路径 |
LIVENESS_PROBE_RETRIES | --retries | 重试次数 |
--endpoint 需与 CSI 驱动实际监听的端点完全一致(如套接字路径或 TCP 地址),否则探测会失败。resources.limits.cpu=100m、memory=128Mi),避免资源占用过高。livenessProbe(基于 Livenessprobe 容器的退出码),示例:
yamllivenessProbe: exec: command: ["cat", "/tmp/health"] # 或直接依赖容器退出码(若 Livenessprobe 进程退出则触发重启) initialDelaySeconds: 10 periodSeconds: 5
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务