kubernetes核心技术之探针知识总结

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: kubernetes核心技术之探针知识总结

探针类型

K8s中存在两种类型的探针:Liveness Probereadiness probe

liveness probe(存活探针)

用于判断容器是否存活, 即 Pod 是否为 running 状态, 如果 LivenessProbe 探针探测到容器不健康, 则 kubelet 将 kill掉容器, 并根据容器的重启策略是否重启。 如果一个容器不包含 LivenessProbe 探针, 则 Kubelet 认为容器的 LivenessProbe探针的返回值永远成功。有时应用程序可能因为某些原因(后端服务故障等) 导致暂时无法对外提供服务, 但应用软件没有终止, 导致 K8S无法隔离有故障的 pod, 调用者可能会访问到有故障的 pod, 导致业务不稳定。 K8S提供 livenessProbe 来检测应用程序是否正常运行, 并且对相应状况进行相应的补救措施。

readiness probe(就绪探针)

用于判断容器是否启动完成, 即容器的 Ready是否为 True, 可以接收请求, 如果ReadinessProbe 探测失败, 则容器的 Ready 将为 False, 控制器将此 Pod Endpoint 从对应的 serviceEndpoint列表中移除, 从此不再将任何请求调度此 Pod上, 直到下次探测成功。 通过使用 Readiness 探针, Kubernetes能够等待应用程序完全启动, 然后才允许服务将流量发送到新副本。

每类探针都支持三种探测方法

  1. exec: 通过执行命令来检查服务是否正常, 针对复杂检测或无 HTTP 接口的服务, 命令返回值为 0 则表示容器健康。
  2. httpGet: 通过发送 http 请求检查服务是否正常, 返回 200-399 状态码则表明容器健康 .
  3. tcpSocket: 通过容器的 IPPort执行 TCP 检查, 如果能够建立 TCP 连接, 则表明容器健康。

探针探测的结果

  1. Success: Container 通过了检查。
  2. Failure: Container 未通过检查。
  3. Unknown: 未能执行检查, 因此不采取任何措施。

案例演示

apiVersion: v1
kind: Pod
metadata:
  labels:
    test: liveness
  name: liveness-exec-wfq
spec:
  containers:
  - name: liveness
    image: reg.harbor.com/public/busybox:latest
    args:
    - /bin/sh
    - -c
    - touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600
    livenessProbe:
      exec:
        command:
        - cat
        - /tmp/healthy
      initialDelaySeconds: 5
      periodSeconds: 5

探针(Probe)有许多可选字段, 可以用来更加精确的控制 Liveness 和 Readiness 两种探针的行为。 这些参数包括:
initialDelaySeconds: 容器启动后第一次执行探测是需要等待多少秒。
periodSeconds: 执行探测的频率。 默认是 10 秒, 最小 1 秒。
timeoutSeconds: 探测超时时间。 默认 1 秒, 最小 1 秒。
successThreshold: 探测失败后, 最少连续探测成功多少次才被认定为成功。 默认是 1。对于 liveness 必须是 1。 最小值是 1。
failureThreshold: 探测成功后, 最少连续探测失败多少次才被认定为失败。 默认是 3。
最小值是 1。

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
19天前
|
Kubernetes 调度 Docker
深入探讨容器编排技术:从Docker到Kubernetes
容器编排在现代IT中日益关键,从Docker到Kubernetes,助力应用的自动化部署和扩展。Docker提供容器技术,打包应用及环境为镜像,通过引擎、镜像、容器、网络和存储组件实现隔离运行。Kubernetes作为高级容器编排平台,管理Pod(多容器集合),其核心包括API服务器、控制器管理器、调度器和Kubelet。Kubernetes集群由Master和Worker节点构成,实现Pod的高效调度和运行。
65 6
|
7天前
|
Kubernetes 物联网 区块链
未来技术的脉动:区块链、物联网和虚拟现实的新纪元Kubernetes 集群性能优化实践
【5月更文挑战第27天】 随着科技的飞速发展,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正在重塑我们的世界。这些技术不仅在逐步成熟,而且在各个行业中找到了创新的应用。区块链技术以其不可篡改和去中心化的特性,为金融交易、供应链管理和身份验证提供了新的解决方案。物联网通过智能设备和系统的互联互通,优化了资源管理并提升了生活品质。而虚拟现实技术则在娱乐、教育和医疗等领域创造了沉浸式体验。本文将深入探讨这些技术的发展趋势和多样化应用场景,展望它们如何共同塑造未来社会的面貌。
|
12天前
|
运维 Kubernetes 网络协议
Kubernetes详解(十八)——Pod就绪性探针实战
Kubernetes详解(十八)——Pod就绪性探针实战
48 5
|
12天前
|
Kubernetes 网络协议 应用服务中间件
Kubernetes详解(十七)——Pod存活性探针应用实战
Kubernetes详解(十七)——Pod存活性探针应用实战
30 4
|
13天前
|
运维 Kubernetes 网络协议
Kubernetes详解(十八)——Pod就绪性探针实战
Kubernetes详解(十八)——Pod就绪性探针实战
35 3
|
13天前
|
Kubernetes 网络协议 应用服务中间件
Kubernetes详解(十七)——Pod存活性探针应用实战
Kubernetes详解(十七)——Pod存活性探针应用实战
28 3
|
14天前
|
Kubernetes 持续交付 调度
为什么是容器编排技术
**容器编排**是自动化容器部署、管理和扩展的技术,它使得构建跨容器应用、集群调度、健康检查和弹性伸缩变得自动化。Kubernetes是最流行的容器编排平台,提供自动化部署、服务发现、故障恢复和扩展性。学习Kubernetes时,理解其作为面向终态系统的理念很重要,从单个容器开始,结合实践进行学习能提高效率。Kubernetes是Google开源的容器编排引擎,支持自动化部署、可伸缩性和容器管理,其核心概念包括Pod、Controller、Workload、Service、PV/PVC、Namespace和etcd。
|
18天前
|
存储 Kubernetes 监控
使用Kubernetes进行容器编排:技术详解与实践
【5月更文挑战第16天】Kubernetes,简称K8s,是开源容器编排系统,用于自动化部署、扩展和管理容器化应用。核心概念包括节点、Pod(最小部署单元)、服务、标签和副本集。其特点有高可用性、可扩展性、自动化和可移植性。实践使用涉及安装配置集群、编写YAML部署清单、应用部署、监控管理和扩展更新。Kubernetes帮助提升应用的可用性、可扩展性和可移植性。
|
19天前
|
Kubernetes Java 调度
Java容器技术:Docker与Kubernetes
Java容器技术:Docker与Kubernetes
95 0
|
19天前
|
SQL Kubernetes 调度
【技术解析 | 实践】部署Kubernetes模式的Havenask集群
本次分享内容为havenask的kubernetes模式部署,由下面2个部分组成(部署Kubernetes模式Havenask集群、 Kubernetes模式相关问题排查),希望可以帮助大家更好了解和使用Havenask。
59296 1

相关产品

  • 容器服务Kubernetes版