K8S探针的应用

目录:

1、探针的简介

在Kubernetes中,探针(Probes)是用来检查容器健康状况的工具,它们帮助Kubernetes了解容器的状态。Kubernetes支持三种类型的探针:

  • 就绪探针(Readiness Probe):用于判断容器是否准备好服务请求。如果就绪探针失败,Kubernetes不会将流量发送到该容器。
  • 存活探针(Liveness
    Probe):用于判断容器是否仍然运行。如果存活探针失败,Kubernetes会杀死该容器,并根据Pod的重启策略决定是否重启容器。
  • 启动探针(Startup
    Probe):这是一个可选的探针,用于在容器启动时检查其是否已经准备好。这对于那些启动时间较长的容器特别有用,可以防止在容器完全启动之前就开始进行就绪和存活检查。

2、启用探针

你可以通过在Pod的配置文件中定义readinessProbe、livenessProbe或startupProbe来启用这些探针。

2.1、启用就绪探针

yaml 复制代码
apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
spec:
  containers:
  - name: myapp-container
    image: myapp-image
    ports:
    - containerPort: 8080
    readinessProbe:
      httpGet:
        path: /healthz
        port: 8080
      initialDelaySeconds: 5
      periodSeconds: 5

2.2、启用存活探针

yaml 复制代码
apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
spec:
  containers:
  - name: myapp-container
    image: myapp-image
    ports:
    - containerPort: 8080
    livenessProbe:
      httpGet:
        path: /healthz
        port: 8080
      initialDelaySeconds: 15
      periodSeconds: 20

2.3、启用启动探针(可选)

yaml 复制代码
apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
spec:
  containers:
 - name: myapp-container
    image: myapp-image
    ports:
    - containerPort: 8080
    startupProbe:
      httpGet:
        path: /startupz
        port: 8080
      failureThreshold: 30
      periodSeconds: 10
    readinessProbe:
      httpGet:
        path: /healthz
        port: 8080
      initialDelaySeconds: 5
      periodSeconds: 5
    livenessProbe:
      httpGet:
        path: /healthz
        port: 8080
      initialDelaySeconds: 15
      periodSeconds: 20

注意事项:

  • initialDelaySeconds:在开始进行健康检查之前等待的秒数。对于启动探针,这是容器完全启动之前的等待时间。对于就绪和存活探针,这是容器启动后开始检查前的延迟时间。
  • periodSeconds:执行健康检查的时间间隔(秒)。默认情况下,Kubernetes每10秒执行一次检查。根据应用的需要调整这个值。
  • failureThreshold:在认为容器失败并采取行动之前,连续失败的检查次数。默认情况下,这是3次连续失败。对于启动探针,这个值通常设置得较高,因为容器启动可能需要较长时间。
  • successThreshold(可选):在认为容器成功之前连续成功的检查次数。默认值是1,表示一次成功即可。对于启动探针,通常不需要这个设置。
  • type:可以是httpGet、tcpSocket或exec。httpGet通过HTTP
    GET请求来检查;tcpSocket通过打开一个socket来检查;exec通过执行一个命令来检查。根据需要选择合适的类型。

通过正确配置这些探针,你可以有效地管理容器的健康状态,确保应用的稳定性和可用性。

相关推荐
阿里云云原生29 分钟前
你的 OpenClaw 真的在受控运行吗?
云原生
阿里云云原生1 小时前
5 分钟零代码改造,让 Go 应用自动获得全链路可观测能力
云原生·go
Shanyoufusu122 小时前
RKE2 单节点集群安装 Rancher+ 私有镜像仓库搭建 完整教程
云原生
阿里云云原生2 小时前
Dify 官方上架 Higress 插件,轻松接入 AI 网关访问模型服务
云原生
AI攻城狮4 小时前
OpenClaw Session 管理完全指南:Context 压缩、重置与持久化
人工智能·云原生·aigc
蝎子莱莱爱打怪1 天前
GitLab CI/CD + Docker Registry + K8s 部署完整实战指南
后端·docker·kubernetes
阿里云云原生4 天前
阿里云获评 Agentic AI 开发平台领导者,函数计算 AgentRun 赢下关键分!
云原生
蝎子莱莱爱打怪4 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
崔小汤呀4 天前
Docker部署Nacos
docker·容器
缓解AI焦虑4 天前
Docker + K8s 部署大模型推理服务:资源划分与多实例调度
docker·容器