Kubernetes 探针使用介绍

  • 一、基本介绍
  • 二、K8s 探针使用介绍

一、基本介绍

当我们在 K8s 上运行应用时,应用是否运行正常这是我们比较关心的,但是如果我们只是通过查看应用的运行状态,这是很难判断出应用是否处于运行状态的;因为在某些时候,容器正常运行并不能代表应用健康,所以我们可以通过 Kubernetes 提供的探针。

使用探针来判断容器内运行的应用是否运行正常。官方文档


Kubernetes 的探针有三种类型:

  • 就绪探针(Readiness Probe):判断容器是否已经就绪,若未就绪,容器将会处于未就绪。
  • 存活探针(Liveness Probe):判断容器内的应用程序是否正常,若不正常,K8s 将会重新重启容器。
  • 启动探针(Startup Probe):判断容器内的应用是否启动完成(在启动探针判断成功前,就绪探针和存活探针将不会执行)

探针方式:

  • exec:通过在容器内执行指定命令,来判断命令退出时返回的状态码,如果为 0 表示正常
  • httpGet:通过对容器的 IP 地址、端口和 URL 路径来发送 GET 请求;如果响应的状态码在 200 ~ 399 间,表示正常
  • tcpSocket:通过对容器的 IP 地址和指定端口,进行 TCP 检查,如果端口打开,表示正常

配置项:

  • initialDelaySeconds:等待我们定义的时间 结束后便开始探针检查
  • periodSeconds:探针的 间隔时间
  • timeoutSeconds:探针的 超时时间,当超过我们定义的时间后,便会被视为失败;
  • successThreshold:探针的 最小连续成功数量
  • failureThreshold:探针的 最小连续失败数量

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

二、K8s 探针使用介绍

1)就绪探针:

[root@k8s-master01 ~]# vim tomcat-service.yaml
apiVersion: v1
kind: Pod
metadata:name: tomcat-service
spec:containers:- name: tomcat-serviceimage: tomcat:8.5.32ports:- containerPort: 8080readinessProbe:failureThreshold: 3tcpSocket:port: 8080initialDelaySeconds: 20periodSeconds: 3successThreshold: 1timeoutSeconds: 2
[root@k8s-master01 ~]# kubectl create -f tomcat-service.yaml


我们可以通过 describe 来查看 Pod 的信息

[root@k8s-master01 ~]# kubectl describe pod tomcat-service


2)存活探针:

[root@k8s-master01 ~]# vim tomcat-web-server.yaml
apiVersion: v1
kind: Pod
metadata:name: tomcat-web-server
spec:containers:- name: tomcat-web-serverimage: tomcat:8.5.32ports:- containerPort: 8080livenessProbe:failureThreshold: 3httpGet:path: /port: 8080scheme: HTTP                      # 可以使用 HTTP 或 HTTPS 方式initialDelaySeconds: 20periodSeconds: 3successThreshold: 1timeoutSeconds: 2
[root@k8s-master01 ~]# kubectl create -f tomcat-web-server.yaml

  • 上面重启是因为,当存活探针或启动探针判断不成功时,便会将容器关闭;后面将牵扯到容器的重启策略。
  • 容器默认的重启策略为 Always(即,当容器退出时,将要退出的容器进行重启)

3)启动探针:

[root@k8s-master01 ~]# vim tomcat-async-service.yaml
apiVersion: v1
kind: Pod
metadata:name: tomcat-async-service
spec:containers:- name: tomcat-async-serviceimage: tomcat:8.5.32ports:- containerPort: 8080startupProbe:failureThreshold: 3exec:command: ['/bin/sh','-c','echo Hello World']initialDelaySeconds: 20periodSeconds: 3successThreshold: 1timeoutSeconds: 2
[root@k8s-master01 ~]# kubectl create -f tomcat-async-service.yaml

Kubernetes 探针使用介绍相关推荐

  1. Kubernetes中StatefulSet介绍

    原文链接:Kubernetes中StatefulSet介绍 StatefulSet 是Kubernetes1.9版本中稳定的特性,本文使用的环境为 Kubernetes 1.11.如何搭建环境可以参考 ...

  2. Kubernetes(K8s)Events介绍(上)

    Kubernetes Events虽不常被提起,却意义非凡.它存储在Etcd里,记录了集群运行所遇到的各种大事件.本系列文章将一步一步地揭开Kubernetes Events的神秘面纱. 师出有名 前 ...

  3. kubernetes各组件介绍

    文章目录 一. kubernetes 是什么 1. 基础架构图 2. kubernetes 各组件介绍 2.1 master 组件 :one: Kubernetes API Server(kube-a ...

  4. 基于eBPF技术的开源项目Kindling之探针架构介绍

    Kindling开源项目是一款基于eBPF技术的云原生可观测性项目.本文将主要介绍探针的具体架构设计. Kindling探针的架构设计理念 Kindling架构设计中有一个很重要的理念:关注点分离(S ...

  5. 容器云系列之Kubernetes基本架构介绍

    K8S是开源的容器编排引擎,支持自动化部署.大规模可伸缩.应用容器化管理,有助于运维人员进行资源的自动化管理和利用率最大化.本文是基于张建锋老师容器技术培训关于K8S的有关总结和整理,以加深学习了解. ...

  6. Serverless Kubernetes 容器服务介绍

    作者 | 张维 阿里巴巴高级技术专家 导读:Serverless Kubernetes 是以容器和 kubernetes 为基础的 Serverless 服务,它提供了一种简单易用.极致弹性.最优成本 ...

  7. Kubernetes探针踩坑记

    1. 荒腔走板 最近一两个月生产K8s集群频繁出现短时503 Service Temporarily Unavailable,还不能主动复现,相当郁闷,压力山大. HTTP 5xx响应状态码用于定义服 ...

  8. kubernetes dev client-go 介绍

    文章目录 1. 简介 2. Setup 3. 连接 API Server 4. 创建一个clientset 5. 获取集群的PVC列表 6. 监听集群中pvc 6.1 启动监听功能 6.2 循环事件 ...

  9. Kubernetes 核心概念介绍

    云计算.容器化以及容器编排是 DevOps 中最重要的发展趋势,无论你是数据科学家.软件开发者还是产品经理,了解 Docker 和 Kubernetes 的基本概念总是有好处的,二者可以帮助你与他人协 ...

最新文章

  1. 计算机 二进制 中国,二进制与计算机
  2. python入门练习题-python基础知识练习题一
  3. 【美文欣赏】人人都有难念的经
  4. python PyQt5 QtWidgets.QAbstractSlider.valueChanged()
  5. 【牛客 - 330I】Applese 的回文串(结论题,类似编辑距离,dp)
  6. 对于最近爆火的区块链,投资人怎么看? | 聚焦
  7. Linux进阶之路————磁盘查询
  8. AtCoder ABC 127F Absolute Minima
  9. python 线程同步_python线程同步(2)
  10. 字体图标浅析——什么是字体图标?如何生成?怎么使用?
  11. java openoffic excel转html,Java利用OpenOffice進行將word,excel轉化成html解析到界面(上)...
  12. 计算机获得超级管理员,怎么获得Win7超级管理员权限
  13. NFS笔记(二)NFS服务器配置实例
  14. ABAP基本数据类型
  15. 记一次定位解决SpringBoot中内嵌Tomcat的Bug问题
  16. 使用OpenCV实现一个文档自动扫描仪
  17. 基于ACF多通道特征的人脸检测——从原理到实现
  18. Python发送邮件(demo)
  19. 悲剧艺术! finalize方法实现对象的自我拯救
  20. Unity 获得时间戳

热门文章

  1. epic游戏平台如何启用认证器应用程序(双重认证)/二次验证码/谷歌身份验证器?
  2. 恢复重装系统后的EFS加密文件
  3. SecureCRT连接开发板
  4. Abp mysql guid_使用ABP框架踩过的坑系列5
  5. 电脑托文件到服务器,本地电脑文件拖入云服务器
  6. C++ 在函数中定义函数
  7. VOT 2015 Benchmark 使用教程
  8. 尖峰在线培训 http://www.jianfengedu.com/
  9. 智能感知与学习(六):识别系统
  10. 前端改变this指向的方法有哪些?如何判断this指向?