背景

1,之前我们的yaml文件里面有就绪探针。

2,探针是检测一个文件是否生成,生成了说明服务正常。

3,现在要加一个检测,也是一个文件是否存在并且不为空。

4,只有两个条件同时满足了 服务才算正常。然后就可以给外部提供服务了。

一、k8s的探针

1,K8s的探针,其实就是一种检测预设是否满足一种条件,然后做出相应的动作。

2,比如检测容器是否正常,服务是否正常,是一种提前做出反应的一种手段机制。

3,容器的启动和服务的状态是我们最关心的。

4, 存活探针:检测容器是否启动存活

就绪探针:检测服务是否正常,不正常之前是unready,不加入endport。

启动探针:设置了启动探针,则禁止所有的其他探针,知道他成功为止。

二、探针的探测方式

1,exec,命令式探测,命令或者脚本,返回非0为失败。

2,HTTP请求接口,任何大于或等于 200 并且小于 400 的返回代码标示成功,其它返回代码都标示失败。

3,TCP链接检测,建立连接则为正常。

三、exec command 多个检测条件

1,其实我们开发的需求还是非常的明确的,就是多加一个检测条件。

2,如果检测的文件存在且不为空,那么这个Pod就不让提供服务。

3.1 分析

1,不让pod提供服务,那么只有就绪探针满足。

2,我去检查了一下我们的yaml文件,里面的就绪探针是有东西的。

3,那么久只能在原先的基础上面加。

3.2 原始的探针

其实就是检测了一下这个文件存不存在。

      readinessProbe:
exec:
command:
- test
- -f
- /var/www/html/.env
initialDelaySeconds: 2
periodSeconds: 2
timeoutSeconds: 2
failureThreshold: 15

3.3 加上另一个检测条件

1,那么只要这个命令执行最后的返回值为0,那么这个探针就是成功的

2,如果/tmp/database_migrate_error.log文件存在且不为空,那么就会执行ceshi命令,

这个命令根本就没有,所以肯定会失败。所以返回非0,所以这个容器就会一直处于unready状态。

3,这样就满足了开发的需求。容器不提供服务。

        readinessProbe:
exec:
command:
- /bin/sh
- -c
- test -f /var/www/html/.env && if [ -s /tmp/database_migrate_error.log ]; then ceshi; fi
initialDelaySeconds: 2
periodSeconds: 2
timeoutSeconds: 2
failureThreshold: 15

四、总结

1,首先我这篇随笔只是记录了一个点,探针的exec 多个检测条件。

2,关于k8s整个探针的随笔我后期会写一篇单独的。

3,附上官网地址:https://kubernetes.io/zh/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes

写的不好,请多多指教:https://www.cnblogs.com/fanfanfanlichun/

k8s 探针 exec多个判断条件条件 多个检测条件的更多相关文章

  1. util-C# 复杂条件查询(sql 复杂条件查询)查询解决方案

    ylbtech-funcation-util:  C# 复杂条件查询(sql 复杂条件查询)查询解决方案 C# 复杂条件查询(sql 复杂条件查询)查询解决方案 1.A,Ylbtech.Model返回 ...

  2. EXCEL应用:高级筛选里的条件或和与的条件怎么写 例:不包含,包含等

    ============================================================= a列包含b列,在c列中显示b列信息, =INDEX(B:B,MIN(IF(I ...

  3. 请输入一个大于7的整数,输出小于k并且至少满足下面2个条件中的1个条件的所有正整数

    import java.util.Scanner; /** * @author:(LiberHome) * @date:Created in 2019/3/6 22:06 * @description ...

  4. mybatis——逆向工程中 where (条件1)and (条件2 or 条件3 or 条件4)

    where (条件1)and (条件2 or 条件3 or 条件4) = where (条件1 and 条件2)or (条件1 and 条件3) or (条件1 and 条件4) 结果 是这样的 WH ...

  5. python-参数化-(2)(数据库判断是否存在并返回满足条件的数据)

    1.根据python-参数化-(1),生成的数据号码 在数据库查询后判断是否存在若不存在返回手机号码,若存在返回该手机号码对应数据的信息,未封装成类或函数上代码 import pymysqlconn= ...

  6. Elasticsearch判断多列存在、bool条件组合查询示例

    and符号判断多列存在:{   "filter": {     "and": [       {         "exists": {   ...

  7. MyDAL - .Where() 之 .WhereSegment 根据条件 动态设置 Select查询条件 使用

    索引: 目录索引 一.API 列表 1.WhereSegment 属性,指示 根据条件 动态拼接 where 查询过滤条件 见如下示例. 二.API 单表-完整 方法 举例 // 上下文条件 变量 v ...

  8. 关键字Run Keyword If 如何写多个条件语句、如何在一个条件下执行多个关键字

    Run Keyword If 关键字给出的示例是: 但是,这往往不能满足我们实际需要,比如,我们需要同时判断多个条件是否成立,或者在条件成立时我们想要执行多个关键字,虽然可以进行封装再调用,但是比较麻 ...

  9. if语句 条件测试 shell编程之条件语句

    shell 编程之条件语句一.条件测试  ① test命令 测试  ② 文件测试  ③ 整数值比较  ④ 字符串比较  ⑤ 逻辑测试二.if语句的结构  单分支结构  双分支结构  多分支结构三.ca ...

随机推荐

  1. JS文件延迟和异步加载:defer和async属性

    -般情况下,在文档的 <head> 标签中包含 JavaScript 脚本,或者导入的 JavaScript 文件.这意味着必须等到全部 JavaScript 代码都被加载.解析和执行完以 ...

  2. nmcli命令行修改网络连接名称

    目前在网上能找到的文章中,使用nmcli命令修改Linux系统中网卡连接的名称都是先创建新的连接,然后删除旧的连接的方式 此种方式其实完全不恰当,简直就是在浪费时间,nmcli命令本身就提供了直接修改 ...

  3. 配置软ISCSI存储

    说明:这里是Linux服务综合搭建文章的一部分,本文可以作为单独使用RedHat Enterprise Linux 7搭建软ISCSI的参考. 注意:这里所有的标题都是根据主要的文章(Linux基础服 ...

  4. 搭建kerberos和NTP服务器以及安全的NFS服务

    说明:这里是Linux服务综合搭建文章的一部分,本文可以作为单独搭建Kerberos和NTP时钟服务的参考. 注意:这里所有的标题都是根据主要的文章(Linux基础服务搭建综合)的顺序来做的. 如果需 ...

  5. 5G时代,视频会议的未来

    过去,2G打开了了移动互联网天下,3G促成了即时通信,诞生了QQ.微信等巨头,4G 带来了短视频兴起,字节跳动等公司崛起.2.3.4G的出现促成了移动互联网10年繁荣.而5G的出现,也会促成至少10年 ...

  6. JAVAWEB - Servlet原理及其使用>从零开始学JAVA系列

    目录 Servlet原理及其使用 什么是Servlet Servlet的使用 编写一个Servlet,使用继承HttpServlet的方式 配置web.xml 很简单的几个JSP文件 小提示,如果继承 ...

  7. Vue学习笔记(一)简单使用和插值操作

    目录 一.Vue是什么 二.Vue简单体验 1. 声明式渲染 2. vue列表展示 3. 处理用户输入(事件监听) 三.插值操作 1. Mustache语法 2. 常用v-指令 v-once v-ht ...

  8. pytest框架fixture的使用

    fixture可以当做参数传入 定义fixture跟定义普通函数差不多,唯一区别就是在函数上加个装饰器@pytest.fixture(),fixture命名不要以test开头,跟用例区分开.fixtu ...

  9. .NET 6 预览版 7 发布——最后一个预览版

    原文:bit.ly/2VJxjxQ 作者:Richard 翻译:精致码农-王亮 说明:文中有大量的超链接,这些链接在公众号文章中被自动剔除,一部分包含超链接列表的小段落被我删减了,如果你对此感兴趣,请 ...

  10. 干了8年Android开发熬到年薪40万,突然接到被辞退消息,应该怎么办?

    01 36岁Android开发,为公司工作8年,昨天HR说公司不准备续约 前天晚上,有个读者给我留言,讲述了他自己比较气愤的一件事,感觉自己委屈又不值. 这位朋友不愿意透露姓名,就叫他H先生吧. H先 ...