首页 > 其他分享 >D10 kubernetes 容器监控检查之探针

D10 kubernetes 容器监控检查之探针

时间:2024-08-23 19:14:51浏览次数:13  
标签:容器 D10 kubernetes 启动 状态 探针 应用程序

0、简介

》 当pod状态显示为running,这表明pod中所有容器都已经运行,但这并不意味着pod中的应用程序已经准备好提供服务。实际上,running状态仅仅表示容器的启动状态,与应用程序是否准备好提供服务没有直接关系。可能由于以下原因,应用程序不能提供服务:

- 应用程序启动慢:容器已运行,但容器中的应用程序还在启动中,这个时候容器仍然无法提供服务
- 应用程序假死:应用程序由于某种原因(死锁、代码bug),无法继续执行后面的工作

》 为了解决这类问题,kubernetes提供了探针机制。探针被配置为周期性检查容器中应用程序的健康状态。如果应用程序异常,则kubernetes将通过容器探针采取响应的措施。

  • 探针支持以下三种类型
- startupProbe:启动探针,检查容器中应用程序是否启动。它仅用于容器启动阶段确定应用程序是否运行,一旦启动探针成功,它就不会再继续执行
- livenessProbe:存活探针,检查容器中应用程序是否运行。如果存活探针失败,kubernetes将重新启动容器,以尝试恢复应用程序的运行状态
- readinessProbe:就绪探针,监测容器中应用程序是否整备好接受流量。如果就绪探针失败,kubernetes将pod标记为未就绪准备,从而防止将新的流量转发到该pod
  • 探针支持以下三种检查方法:
- httpGet:向容器中执行发送HTTP请求来判断健康状态,如果响应的状态码大于或等于200且小于400则表示成功,其他状态码则表示失败
- tcpSocket:向容器中指定端口简历TCP连接来判断健康状态。如果tcp建立成功,则表示成功,否则表示失败
- exec:在容器中执行命令,根据命令的退出状态码来判断健康状态。如果命令的退出状态为0,则表示成功,非0表示失败

1、存活探针

》 启动探针是在kubernetes1.18 版本中引入的,用于在容器启动时检查应用程序是否启动。与就绪探针和存活探针不通,启动探针是在容器启动时进行的,而不是在容器运行时进行的

  • 以下是启动探针的使用场景
- 避免不必要的重启:由于某种原因(如节点负载高)导致引用程序

标签:容器,D10,kubernetes,启动,状态,探针,应用程序
From: https://www.cnblogs.com/suyj/p/18376865

相关文章

  • D9 kubernetes 之pod中声明端口
    》 在pod配置中,ports字段用于定义容器公开的端口列表。该字段的值是一个对象列表类型,其中每个元素(对象)对应一个端口规则,每个端口规则由以下字段组成。name:端口名称。仅定义一个端口时,该字段可选containerPort:容器端口,容器内应用程序监听的端口protocol:端口使用的协议:TCP、UDP、......
  • D7 kubernetes 容器运行命令与参数
    》 在pod配置中,command和args字段用于定义容器的命令和参数1、command》 command字段用于定义容器启动时要执行的命令,并覆盖镜像中默认的启动命令。它的值是一个字符串列表类型,其中第一个元素视为命令名称,后续元素视为命令的参数command配置实例如下[root@k8s-masterk8s]#......
  • D6 kubernetes 中pod 常用命令
    常用的pod管理命令#创建一个podkubectlrunpod名称--image=镜像地址#查看当前命名空间中的pod对象kubectlgetpods#查看指定命名空间中的pod对象kubectlgetpods-n命名空间#查看所有命名空间中的podkubectlgetpods-A#查看pod中容器的日志,默认来自第......
  • D5 kubernetes 中pod资源常见字段及值类型(yaml)
    》pod资源包含许多配置字段,以提供更多的功能。以下是一些常见的配置字段和作用apiVersion:v1#api版本king:Pod#资源类型metadata:<Object>#资源元数据lables:......
  • Kubernetes 1.28.2 负载均衡解决方案 MetalLB实践
    MetalLB是一个用于在Kubernetes集群中提供外部IP地址的负载均衡器实现。安装须知:Kubernetesv1.13.0或者更新的版本规划IPv4地址给MetalLB用于分配。当使用BGP操作模式时,你将需要一个或多个能够支持BGP协议的路由器。L2模式下需要各个节点间7946端口(TCP&......
  • Kubernetes: client-go 源码剖析(一)
    kubernetes:client-go 系列文章:Kubernetes:client-go源码剖析(一)Kubernetes:client-go源码剖析(二)0.前言在看 kube-scheduler 组件的过程中遇到了 kube-scheduler 对于 client-go 的调用,泛泛的理解调用过程总有种隔靴搔痒的感觉,于是调转头先把 client-go 理清楚......
  • Fedora Linux 41 推出多版本 Kubernetes RPM,灵活性大大增加!
    随着FedoraLinux41的即将发布,Kubernetes管理员和企业用户将迎来一个令人振奋的功能更新:多版本KubernetesRPM。这一创新举措标志着Fedora在Kubernetes打包策略上的重大转变,为容器化环境提供了更大的灵活性和控制能力。在容器化技术日益普及的今天,Kubernetes已......
  • Python代码部署之用Kubernetes实现自动化详解
    概要在现代软件开发中,容器化和微服务架构逐渐成为主流,而Kubernetes则是管理容器化应用的事实标准。Kubernetes(简称K8s)提供了自动化部署、扩展和管理容器化应用的强大功能。本文将详细介绍如何使用Kubernetes来部署Python代码,包括Kubernetes的基本概念、部署流程,以及通过示例......
  • 探索Kubernetes:Java微服务的8步深度指南
    ......
  • 一次Kubernetes Pod内存异常导致的测试环境耗时异常问题排查过程
    概述在使用公司内部后台系统测试环境时发现一个请求加载慢的问题,简简单单的列表,查询MongoDB数据库,测试环境不过几百上千条数据而已,请求耗时居然高达5~6秒:作为对比,生产环境的请求响应截图如下:经过持续跟进,该后台系统所有列表页面测试环境普遍比生产环境慢,不管是MongoDB还是MyS......