使用探针对容器进行健康检查

容器实例 BCI

  • 产品定价
  • 功能发布记录
  • 操作指南(旧)
    • 创建容器组
  • 产品描述
    • 产品特性
    • 使用限制
    • 核心概念
    • 什么是BCI?
  • BCI服务等级协议SLA
    • BCI服务等级协议SLA
  • API参考
    • 通用说明
    • 附录
    • 服务域名
    • 公共请求头与响应头
    • 错误码
    • 概述
    • 实例相关接口
      • 批量删除实例
      • 查询实例列表
      • 创建实例
      • 删除实例
      • 查询实例详情
    • 镜像缓存相关接口
      • 创建镜像缓存
      • 查询镜像缓存列表
      • 批量删除镜像缓存
  • 操作指南
    • 通过BCI控制台和API使用BCI
      • 多用户访问控制
      • 运维
        • 使用coredump分析实例程序异常
      • 网络
        • 连接公网
      • 监控
        • 查看实例监控指标
      • 镜像
        • 使用CCR镜像仓库
        • 使用第三方镜像仓库
        • 镜像缓存
          • 管理镜像缓存
          • 镜像缓存概述
      • 存储
        • 挂载CFS数据卷
        • 挂载EmptyDir数据卷
        • 挂载ConfigMap数据卷
      • 容器配置
        • 设置容器启动命令和参数
      • 通过控制台使用BCI
        • 连接BCI实例
        • 删除BCI实例
        • 创建BCI实例
        • 查看BCI实例的详情和事件
      • BCI Pod
        • BCI Pod生命周期
        • BCI Pod概述
      • 成本优化
        • 预留实例券
          • 购买预留实例券
          • 预留实例券与实例的匹配
          • 查看预留实例券使用明细
          • 查看可抵扣的实例
          • 预留实例券概述
    • 通过CCE使用BCI
      • 运维
        • 使用coredump分析实例程序异常
        • 常见问题
      • 网络
        • 配置BCI Pod所属安全组
        • 连接公网
        • 支持自定义DNSConfig
        • 通过Service访问BCI服务
        • 配置BCI Pod访问集群内Service
      • 监控
        • 查看实例监控指标
        • 通过VK获取实例监控指标
      • 镜像
        • 使用CCR镜像仓库
        • 使用第三方镜像仓库
        • 镜像缓存
      • 存储
        • 挂载容器标准输出日志
        • 挂载EmptyDir数据卷
        • 挂载CFS文件存储
        • 挂载ConfigMap数据卷
        • 挂载BOS数据卷
        • 挂载PFS并行文件存储
      • 对接BCI
        • 对接概述
        • 混合调度
        • 通过标签将Pod调度到VNode上运行
        • 将Pod调度到VNode
        • BCI自定义Condition
      • 容器配置
        • 设置容器时区
        • 容器生命周期回调
        • 在容器内获取元数据
        • 配置NTP服务
        • 强制终止Sidecar容器并忽略容器退出码
        • 使用探针对容器进行健康检查
        • 忽略Sidecar容器的NotReady状态
        • 设置容器终止消息
        • 设置容器启动命令和参数
      • 日志
        • BLS日志采集使用方式
      • BCI Pod
        • 指定vCPU和内存创建Pod
        • BCI Pod生命周期
        • BCI Pod概述
        • 自定义设置BCI Pod的hosts
        • 创建GPU实例
        • 配置资源规整时忽略特定容器
        • 设置BCI Pod的故障处理策略
        • 为BCI Pod绑定自定义标签
        • 自定义设置BCI Pod的最大Pending时长
        • BCI Pod Annotation
        • 配置bci-profile
        • 多可用区创建实例
      • 成本优化
        • 预留实例券
          • 购买预留实例券
          • 预留实例券与实例的匹配
          • 查看预留实例券使用明细
          • 查看可抵扣的实例
          • 预留实例券概述
    • 通过自建集群使用BCI
      • 运维
        • 使用coredump分析实例程序异常
      • 监控
        • 查看实例监控指标
        • 通过VK获取实例监控指标
      • 存储管理
        • 挂载EmptyDir数据卷
        • 挂载CFS文件存储
        • 挂载ConfigMap数据卷
        • 挂载PFS并行文件存储
      • 镜像管理
        • 使用CCR镜像仓库
        • 使用第三方镜像仓库
        • 使用镜像缓存
          • 查询镜像缓存
          • 镜像缓存概述
      • 对接BCI
        • 自建Kubernetes集群对接VNode
        • 对接概述
        • 混合调度
        • 通过标签将Pod调度到VNode上运行
        • 将Pod调度到VNode
        • BCI自定义condition
      • 容器配置
        • 设置容器时区
        • 容器生命周期回调
        • 在容器内获取元数据
        • 配置NTP服务
        • 强制终止Sidecar容器并忽略容器退出码
        • 使用探针对容器进行健康检查
        • 忽略Sidecar容器的NotReady状态
        • 设置容器终止消息
        • 设置容器启动命令和参数
      • 网络管理
        • 配置BCI Pod所属安全组
        • 连接公网
        • 支持自定义DNSConfig
        • 配置BCI Pod访问集群内Service
      • 预留实例券
        • 购买预留实例券
        • 预留实例券与实例的匹配
        • 查看预留实例券使用明细
        • 查看可抵扣的实例
        • 预留实例券概述
      • 日志
        • 采集日志到百度云BLS
        • bls日志采集使用方式
      • BCI Pod
        • 指定vCPU和内存创建Pod
        • BCI Pod生命周期
        • BCI Pod概述
        • 自定义设置BCI Pod的hosts
        • 创建GPU实例
        • 配置资源规整时忽略特定容器
        • 设置BCI Pod的故障处理策略
        • 为BCI Pod绑定自定义标签
        • 自定义设置BCI Pod的最大Pending时长
        • BCI Pod Annotation
        • 多可用区创建实例
  • SDK
    • Java-SDK
      • 异常处理
      • 版本变更记录
      • 初始化
      • 安装SDK工具包
      • 概述
      • 实例相关
        • 批量删除实例
        • 查询实例列表
        • 创建实例
        • 删除实例
        • 查询实例详情
    • Go-SDK
      • 异常处理
      • BCI实例
      • 初始化
      • 安装SDK工具包
      • 概述
所有文档
menu
没有找到结果,请重新输入

容器实例 BCI

  • 产品定价
  • 功能发布记录
  • 操作指南(旧)
    • 创建容器组
  • 产品描述
    • 产品特性
    • 使用限制
    • 核心概念
    • 什么是BCI?
  • BCI服务等级协议SLA
    • BCI服务等级协议SLA
  • API参考
    • 通用说明
    • 附录
    • 服务域名
    • 公共请求头与响应头
    • 错误码
    • 概述
    • 实例相关接口
      • 批量删除实例
      • 查询实例列表
      • 创建实例
      • 删除实例
      • 查询实例详情
    • 镜像缓存相关接口
      • 创建镜像缓存
      • 查询镜像缓存列表
      • 批量删除镜像缓存
  • 操作指南
    • 通过BCI控制台和API使用BCI
      • 多用户访问控制
      • 运维
        • 使用coredump分析实例程序异常
      • 网络
        • 连接公网
      • 监控
        • 查看实例监控指标
      • 镜像
        • 使用CCR镜像仓库
        • 使用第三方镜像仓库
        • 镜像缓存
          • 管理镜像缓存
          • 镜像缓存概述
      • 存储
        • 挂载CFS数据卷
        • 挂载EmptyDir数据卷
        • 挂载ConfigMap数据卷
      • 容器配置
        • 设置容器启动命令和参数
      • 通过控制台使用BCI
        • 连接BCI实例
        • 删除BCI实例
        • 创建BCI实例
        • 查看BCI实例的详情和事件
      • BCI Pod
        • BCI Pod生命周期
        • BCI Pod概述
      • 成本优化
        • 预留实例券
          • 购买预留实例券
          • 预留实例券与实例的匹配
          • 查看预留实例券使用明细
          • 查看可抵扣的实例
          • 预留实例券概述
    • 通过CCE使用BCI
      • 运维
        • 使用coredump分析实例程序异常
        • 常见问题
      • 网络
        • 配置BCI Pod所属安全组
        • 连接公网
        • 支持自定义DNSConfig
        • 通过Service访问BCI服务
        • 配置BCI Pod访问集群内Service
      • 监控
        • 查看实例监控指标
        • 通过VK获取实例监控指标
      • 镜像
        • 使用CCR镜像仓库
        • 使用第三方镜像仓库
        • 镜像缓存
      • 存储
        • 挂载容器标准输出日志
        • 挂载EmptyDir数据卷
        • 挂载CFS文件存储
        • 挂载ConfigMap数据卷
        • 挂载BOS数据卷
        • 挂载PFS并行文件存储
      • 对接BCI
        • 对接概述
        • 混合调度
        • 通过标签将Pod调度到VNode上运行
        • 将Pod调度到VNode
        • BCI自定义Condition
      • 容器配置
        • 设置容器时区
        • 容器生命周期回调
        • 在容器内获取元数据
        • 配置NTP服务
        • 强制终止Sidecar容器并忽略容器退出码
        • 使用探针对容器进行健康检查
        • 忽略Sidecar容器的NotReady状态
        • 设置容器终止消息
        • 设置容器启动命令和参数
      • 日志
        • BLS日志采集使用方式
      • BCI Pod
        • 指定vCPU和内存创建Pod
        • BCI Pod生命周期
        • BCI Pod概述
        • 自定义设置BCI Pod的hosts
        • 创建GPU实例
        • 配置资源规整时忽略特定容器
        • 设置BCI Pod的故障处理策略
        • 为BCI Pod绑定自定义标签
        • 自定义设置BCI Pod的最大Pending时长
        • BCI Pod Annotation
        • 配置bci-profile
        • 多可用区创建实例
      • 成本优化
        • 预留实例券
          • 购买预留实例券
          • 预留实例券与实例的匹配
          • 查看预留实例券使用明细
          • 查看可抵扣的实例
          • 预留实例券概述
    • 通过自建集群使用BCI
      • 运维
        • 使用coredump分析实例程序异常
      • 监控
        • 查看实例监控指标
        • 通过VK获取实例监控指标
      • 存储管理
        • 挂载EmptyDir数据卷
        • 挂载CFS文件存储
        • 挂载ConfigMap数据卷
        • 挂载PFS并行文件存储
      • 镜像管理
        • 使用CCR镜像仓库
        • 使用第三方镜像仓库
        • 使用镜像缓存
          • 查询镜像缓存
          • 镜像缓存概述
      • 对接BCI
        • 自建Kubernetes集群对接VNode
        • 对接概述
        • 混合调度
        • 通过标签将Pod调度到VNode上运行
        • 将Pod调度到VNode
        • BCI自定义condition
      • 容器配置
        • 设置容器时区
        • 容器生命周期回调
        • 在容器内获取元数据
        • 配置NTP服务
        • 强制终止Sidecar容器并忽略容器退出码
        • 使用探针对容器进行健康检查
        • 忽略Sidecar容器的NotReady状态
        • 设置容器终止消息
        • 设置容器启动命令和参数
      • 网络管理
        • 配置BCI Pod所属安全组
        • 连接公网
        • 支持自定义DNSConfig
        • 配置BCI Pod访问集群内Service
      • 预留实例券
        • 购买预留实例券
        • 预留实例券与实例的匹配
        • 查看预留实例券使用明细
        • 查看可抵扣的实例
        • 预留实例券概述
      • 日志
        • 采集日志到百度云BLS
        • bls日志采集使用方式
      • BCI Pod
        • 指定vCPU和内存创建Pod
        • BCI Pod生命周期
        • BCI Pod概述
        • 自定义设置BCI Pod的hosts
        • 创建GPU实例
        • 配置资源规整时忽略特定容器
        • 设置BCI Pod的故障处理策略
        • 为BCI Pod绑定自定义标签
        • 自定义设置BCI Pod的最大Pending时长
        • BCI Pod Annotation
        • 多可用区创建实例
  • SDK
    • Java-SDK
      • 异常处理
      • 版本变更记录
      • 初始化
      • 安装SDK工具包
      • 概述
      • 实例相关
        • 批量删除实例
        • 查询实例列表
        • 创建实例
        • 删除实例
        • 查询实例详情
    • Go-SDK
      • 异常处理
      • BCI实例
      • 初始化
      • 安装SDK工具包
      • 概述
  • 文档中心
  • arrow
  • 容器实例BCI
  • arrow
  • 操作指南
  • arrow
  • 通过自建集群使用BCI
  • arrow
  • 容器配置
  • arrow
  • 使用探针对容器进行健康检查
本页目录
  • 使用探针对容器进行健康检查
  • 配置示例

使用探针对容器进行健康检查

更新时间:2025-08-20

使用探针对容器进行健康检查

Kubernetes中,容器的健康检查由kubelet定期执行,kubelet通过存活探针和业务探针来检查容器的状态和运行情况。当前BCI支持探针如下:

探针 说明 使用场景
应用存活探针( Liveness Probe) 用于检查容器是否正常运行。如果检查成功,则表示容器正常运行。如果检查失败,系统会根据配置的容器重启策略进行相应的处理。如果未配置该探针,则默认容器一直正常运行。 * 当应用程序处于运行状态但无法进行进一步操作时,Liveness Probe将捕获到deadlock,重启对应的容器,使得应用程序在存在bug的情况下依然能够运行。另外,长时间运行的应用程序最终可能会转换到broken状态,此时除了重新启动,无法恢复。Liveness Probe可以检测并补救这种情况。
应用业务探针(Readiness Probe) 用于检查容器是否已经就绪,可以为请求提供服务。如果检查成功,则表示容器已经准备就绪,可以接收业务请求。如果检查失败,则表示容器没有准备就绪,系统将停止向该容器发送任何请求,直至重新检查成功。 如果应用程序暂时无法对外部流量提供服务,例如应用程序需要在启动期间加载大量数据或配置文件,此时,如果不想终止应用程序,也不想向其发送请求,可以通过Readiness Probe来检测和缓解这种情况。
应用启动探针 (StartupProbe Probe) 用于检查容器是否启动成功,有时候,会有一些现有的应用在启动时需要较长的初始化时间。 要这种情况下,若要不影响对死锁作出快速响应的探测,设置存活探测参数是要技巧的。 比如服务A启动时间很慢,需要60s。这个时候如果还是用存活探针就会进入死循环,因为当存活探针开始探测时,服务并没有起来,发现探测失败就会触发restartPolicy。此时简单调大存活探针的initialDelay时间不灵活且可能带来更多问题,因此可以通过应用启动探针来环境这种情况。

配置示例

您可以通过容器的livenessProbe和readinessProbe字段来设置Liveness Probe或者Readiness Probe,配置详情见配置存活、就绪和启动探针

1.配置应用存活探针( Liveness Probe)

Plain Text
1apiVersion: v1
2kind: Pod
3metadata:
4  annotations:
5    myannotation: "myannotation"
6  labels:
7    app: bci-test-vk
8    mylabel: "mylabel"
9  name: liveness-test
10  namespace: default
11spec:
12  enableServiceLinks: false
13  nodeSelector:
14    type: virtual-kubelet
15  tolerations:
16    - effect: NoSchedule
17      key: virtual-kubelet.io/provider
18      operator: Equal
19      value: baidu
20    - effect: NoExecute
21      key: node.kubernetes.io/not-ready
22      operator: Exists
23      tolerationSeconds: 300
24    - effect: NoExecute
25      key: node.kubernetes.io/unreachable
26      operator: Exists
27      tolerationSeconds: 300
28  containers:
29  - image: hub.baidubce.com/cce/nginx-alpine-go
30    imagePullPolicy: IfNotPresent
31    name: c01
32    workingDir: /work
33    ports:
34    - containerPort: 8080
35      protocol: TCP
36    resources:
37      limits:
38        cpu: 250m
39        memory: 512Mi
40      requests:
41        cpu: 250m
42        memory: 512Mi
43    livenessProbe:
44      exec:
45        command:
46          - /bin/sh
47          - '-c'
48          - sleep 1 && exit 0
49      failureThreshold: 3
50      initialDelaySeconds: 5
51      periodSeconds: 30
52      successThreshold: 1
53      timeoutSeconds: 10

2.配置应用业务探针(Readiness Probe)

Plain Text
1apiVersion: v1
2kind: Pod
3metadata:
4  annotations:
5    myannotation: "myannotation"
6  labels:
7    app: bci-test-vk
8    mylabel: "mylabel"
9  name: readiness-test
10  namespace: default
11spec:
12  enableServiceLinks: false
13  nodeSelector:
14    type: virtual-kubelet
15  tolerations:
16    - effect: NoSchedule
17      key: virtual-kubelet.io/provider
18      operator: Equal
19      value: baidu
20    - effect: NoExecute
21      key: node.kubernetes.io/not-ready
22      operator: Exists
23      tolerationSeconds: 300
24    - effect: NoExecute
25      key: node.kubernetes.io/unreachable
26      operator: Exists
27      tolerationSeconds: 300
28  containers:
29  - image: hub.baidubce.com/cce/nginx-alpine-go
30    imagePullPolicy: IfNotPresent
31    name: c01
32    workingDir: /work
33    ports:
34    - containerPort: 8080
35      protocol: TCP
36    resources:
37      limits:
38        cpu: 250m
39        memory: 512Mi
40      requests:
41        cpu: 250m
42        memory: 512Mi
43    readinessProbe:
44      exec:
45        command:
46          - /bin/sh
47          - '-c'
48          - sleep 1 && exit 0
49      failureThreshold: 3
50      initialDelaySeconds: 5
51      periodSeconds: 30
52      successThreshold: 1
53      timeoutSeconds: 10

3.配置应用启动探针(StartupProbe Probe)

Plain Text
1apiVersion: v1
2kind: Pod
3metadata:
4  annotations:
5    myannotation: "myannotation"
6  labels:
7    app: bci-test-vk
8    mylabel: "mylabel"
9  name: startup-test
10  namespace: default
11spec:
12  enableServiceLinks: false
13  nodeSelector:
14    type: virtual-kubelet
15  tolerations:
16    - effect: NoSchedule
17      key: virtual-kubelet.io/provider
18      operator: Equal
19      value: baidu
20    - effect: NoExecute
21      key: node.kubernetes.io/not-ready
22      operator: Exists
23      tolerationSeconds: 300
24    - effect: NoExecute
25      key: node.kubernetes.io/unreachable
26      operator: Exists
27      tolerationSeconds: 300
28  containers:
29  - image: hub.baidubce.com/cce/nginx-alpine-go
30    imagePullPolicy: IfNotPresent
31    name: c01
32    workingDir: /work
33    ports:
34    - containerPort: 8080
35      protocol: TCP
36    resources:
37      limits:
38        cpu: 250m
39        memory: 512Mi
40      requests:
41        cpu: 250m
42        memory: 512Mi
43    startupProbe:
44      exec:
45        command:
46          - /bin/sh
47          - '-c'
48          - sleep 1 && exit 0
49      failureThreshold: 3
50      initialDelaySeconds: 5
51      periodSeconds: 30
52      successThreshold: 1
53      timeoutSeconds: 10

上一篇
强制终止Sidecar容器并忽略容器退出码
下一篇
忽略Sidecar容器的NotReady状态