Kubernetes 三大探针及探针方式

这篇具有很好参考价值的文章主要介绍了Kubernetes 三大探针及探针方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、探针背景介绍

1、编排工具运行时,虽说pod挂掉会在控制器的调度下会重启,出现pod重启的时候,但是pod状态是running,无法真实的反应当时pod健康状态,我们可以通过Kubernetes的探针监控到pod的实时状态。

二、Kubernetes三种探针类型

启动探针(Startup Probe):判断容器内的应用是否启动完成(在启动探针判断成功前,就绪探针和存活探针将不会执行)

就绪探针(Readiness Probe):判断容器是否已经就绪,若未就绪,容器将会处于未就绪,未就绪的容器,不会进行流量的调度。

存活探针(Liveness Probe):判断容器内的应用程序是否正常,若不正常,K8s 将会重新重启容器。

三、探针的三种方式

exec:通过在容器内执行指定命令,来判断命令退出时返回的状态码,如果为 0 表示正常。

httpGet:通过对容器的 IP 地址、端口和 URL 路径来发送 GET 请求;如果响应的状态码在 200 ~ 399 间,表示正常。

tcpSocket:通过对容器的 IP 地址和指定端口,进行 TCP 检查,如果端口打开,表示正常。

四、配置项

initialDelaySeconds:等待我们定义的时间 结束后便开始探针检查;

periodSeconds:探针的 间隔时间;

timeoutSeconds:探针的 超时时间,当超过我们定义的时间后,便会被视为失败;

successThreshold:探针的 最小连续成功数量;

failureThreshold:探针的 最小连续失败数量;

下面我们分别对这三种探针使用了不同的探针方式,主要是为了方便给大家做一个简单的介绍,并不是固定写法;同时,这三种探针是可以配合使用的;像一般比较常见的便是 就绪探针和存活探针配合使用(启动探针是在 K8s 1.6 版本后增加的

五、探针使用介绍

1)启动探针

apiVersion: v1
kind: Pod
metadata:
  name: nginx-start-up
  namespace: probe
spec:
  containers:
  - name: nginx-start-up
    image: nginx:latest
    ports:
    - containerPort: 80
    startupProbe:
      failureThreshold: 3  #失败三次算探针失败
      exec:
        command: ['/bin/sh','-c','echo Hello World']
      initialDelaySeconds: 20  #延迟20s后进行第一次探针
      periodSeconds: 3 #间隔3s进行一次探针
      successThreshold: 1 #成功一次算探针ok
      timeoutSeconds: 2 #超时2s算失败一次

Kubernetes 三大探针及探针方式
2)就绪探针

apiVersion: v1
kind: Pod
metadata:
  name: nginx-ready
  namespace: probe
  labels:
    app: nginx-ready   #验证就绪探针的关键参数
spec:
  containers:
  - name: nginx-ready
    image: nginx:latest
    ports:
    - containerPort: 80
    readinessProbe:
      failureThreshold: 3
      tcpSocket:
        port: 80
      initialDelaySeconds: 20
      periodSeconds: 3
      successThreshold: 1
      timeoutSeconds: 2

端口检测正常:
Kubernetes 三大探针及探针方式
写一个nodeport类型进行流量验证

apiVersion: v1
kind: Service
metadata:
  name: ready-nodeport
  labels:
    name: ready-nodeport
  namespace: probe
spec:
  type: NodePort
  ports:
  - port: 88
    protocol: TCP
    targetPort: 80
    nodePort: 30880
  selector:
    app: nginx-ready

模拟流量结果是ok的
Kubernetes 三大探针及探针方式
现在修改下就绪探针tcpSocket检测方式的端口为81模拟下探针失败,流量会不会走到该pod
Kubernetes 三大探针及探针方式
显示81端口不通,ready状态为0,但pod是running的,请求一下结果如下,流量打入失败。就绪探针失败,是不会给该pod打入流量的。
Kubernetes 三大探针及探针方式

3)存活探针

apiVersion: v1
kind: Pod
metadata:
  name: nginx-live
  namespace: probe
  labels:
    app: nginx-live
spec:
  containers:
  - name: nginx-live
    image: nginx:latest
    ports:
    - containerPort: 80
    livenessProbe:
      failureThreshold: 3
      httpGet:
        path: /
        port: 80
        scheme: HTTP
      initialDelaySeconds: 20
      periodSeconds: 3
      successThreshold: 1
      timeoutSeconds: 2

Kubernetes 三大探针及探针方式
生成一个nodeport类型service

apiVersion: v1
kind: Service
metadata:
  name: live-nodeport
  labels:
    name: live-nodeport
  namespace: probe
spec:
  type: NodePort
  ports:
  - port: 89
    protocol: TCP
    targetPort: 80
    nodePort: 30810
  selector:
    app: nginx-live

curl进行ip端口校验
Kubernetes 三大探针及探针方式
修改httpget中port参数值为81,模拟存活探针失败,探针失败,会让pod进行重启。
Kubernetes 三大探针及探针方式

六、探针恢复

修改探针探测端口正确,重新加载yaml文件,流量正常。
Kubernetes 三大探针及探针方式文章来源地址https://www.toymoban.com/news/detail-474282.html

到了这里,关于Kubernetes 三大探针及探针方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【云原生K8S】Kubernetes之探针

    目录 一、探针是什么 二、探针类型  Ⅰ、livenessProbe 容器重启策略  Ⅱ、readinessProbe Ⅲ、startupProbe 执行顺序: 字段详情 三、探测机制 Ⅰ、HTTP GET探针 Ⅱ、TCP套接字探针 Ⅲ、Exec探针 探针:是由 kubelet 对容器执行的定期诊断 要执行诊断,则需kubelet 调用由容器实现的 Handler。

    2024年02月09日
    浏览(69)
  • 研发工程师玩转Kubernetes——启动、存活和就绪探针

    启动(Startup Probe)、存活(Liveness Probe)和就绪探针(Readiness Probe)有其不同的用途和优先级。 启动探针(Startup Probe)用于Pod内程序告诉kubernetes,其准备工作已经做好。这些准备工作主要是指业务运行前的前置条件,比如资源文件下载完毕,内置数据库文件下载完毕等。这步

    2024年02月13日
    浏览(36)
  • Kubernetes Pod卷 - Pod镜像的升级和回滚 - 探针

    目录 扩展: Pod创建的拓扑图: 提出的问题: Pod 卷的使用:Pod的数据持久化问题 配置 Pod 以使用卷进行存储 参考文档:配置 Pod 以使用卷进行存储 | Kubernetes 有状态应用和无状态应用: Pod 配置卷  1、创建 Pod: 2、验证 Pod 中的容器是否正在运行,然后留意 Pod 的更改: 3、因

    2024年02月07日
    浏览(50)
  • Linux:kubernetes(k8s)探针LivenessProbe的使用(9)

    他做的事情就是当我检测的一个东西他不在规定的时间内存在的话,我就让他重启,这个检测的目标可以是文件或者端口等 我这个是在上一章的基础之上继续操作,我会保留startupProbe探针让后看一下他俩的执行优先的一个效果 Linux:kubernetes(k8s)探针StartupProbe的使用(8)

    2024年03月15日
    浏览(43)
  • 【容器编排】初识 Kubernetes

    目录 1.简介 2.为什么需要 k8s 3.k8s 能做什么? 4.k8s 不是什么? 1.简介 摘取官网: 概述 | Kubernetes         Kubernetes 这个名字源于希腊语,意为 舵手 或 飞行员 。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。 Google 在 2014 年开源了 Kubernetes 项目。 Kubernetes 建立在 Google 大规模

    2024年02月14日
    浏览(62)
  • Kubernetes 集群管理和编排

    第一章:引入 Kubernetes 引言: 在本章中,我们将引入 Kubernetes,这是一个强大而受欢迎的容器编排和管理平台。我们将探讨 Kubernetes 的定义、作用以及为什么它成为现代容器编排和管理的事实标准。通过本章,您将对 Kubernetes 的背景和优势有一个全面的了解。 大纲: 什么是

    2024年02月16日
    浏览(51)
  • 容器编排的未来:探索基于Kubernetes的微服务编排解决方案

    作者:禅与计算机程序设计艺术 当今的云计算环境下,容器技术正在成为主流,越来越多的公司选择基于容器技术实现应用部署及运行。容器编排技术也逐渐被普遍采用。通过容器编排工具可以将复杂的分布式系统架构部署、管理及扩展起来,从而提供一个高可用、易于维护

    2024年02月14日
    浏览(40)
  • 【云原生】Kubernetes容器编排工具

    目录 1. K8S介绍 1.1 k8s的由来 下载地址 1.2 docker编排与k8s编排相比 1.3 传统后端部署与k8s 的对比 传统部署 k8s部署  ​2. k8s的集群架构与组件 (1) Kube-apiserver (2)Kube-controller-manager  (3)Kube-scheduler   2.2 k8s的配置存储中心 2.3  k8s的Node 组件   (1)Kubelet   (2)Kube-Proxy 

    2024年02月10日
    浏览(42)
  • 【云原生】容器编排工具Kubernetes

    目录 一、 K8S介绍 官网地址: 1.1docker编排与k8s编排相比 1.2特性 1.3功能 二、K8S重要组件 2.1核心组件 (1)Kube-apiserver (2)Kube-controller-manager (3)Kube-scheduler (4)Node ①kubelet ②kube-proxy ③docker (5)etcd 2.2Kubernetes工作原理 三、Pod 3.1 Pod控制器 (1)Deployment (2)ReplicaSet (3)

    2024年02月09日
    浏览(46)
  • 【云原生】Kubernetes编排工具精讲

    Kubernetes 是一个开源的,用于管理云平台中多个主机上的容器化的应用, Kubernetes 的目标是让部署容器化的应用简单并且高效(powerful), Kubernetes 提供了应用部署,规划,更新,维护的一种机制。 Kubernetes 一个核心的特点就是能够自主的管理容器来保证云平台中的容器按照用

    2024年01月16日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包