k8s 探针 exec多个判断条件条件 多个检测条件
背景
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多个判断条件条件 多个检测条件的更多相关文章
- util-C# 复杂条件查询(sql 复杂条件查询)查询解决方案
ylbtech-funcation-util: C# 复杂条件查询(sql 复杂条件查询)查询解决方案 C# 复杂条件查询(sql 复杂条件查询)查询解决方案 1.A,Ylbtech.Model返回 ...
- EXCEL应用:高级筛选里的条件或和与的条件怎么写 例:不包含,包含等
============================================================= a列包含b列,在c列中显示b列信息, =INDEX(B:B,MIN(IF(I ...
- 请输入一个大于7的整数,输出小于k并且至少满足下面2个条件中的1个条件的所有正整数
import java.util.Scanner; /** * @author:(LiberHome) * @date:Created in 2019/3/6 22:06 * @description ...
- 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 ...
- python-参数化-(2)(数据库判断是否存在并返回满足条件的数据)
1.根据python-参数化-(1),生成的数据号码 在数据库查询后判断是否存在若不存在返回手机号码,若存在返回该手机号码对应数据的信息,未封装成类或函数上代码 import pymysqlconn= ...
- Elasticsearch判断多列存在、bool条件组合查询示例
and符号判断多列存在:{ "filter": { "and": [ { "exists": { ...
- MyDAL - .Where() 之 .WhereSegment 根据条件 动态设置 Select查询条件 使用
索引: 目录索引 一.API 列表 1.WhereSegment 属性,指示 根据条件 动态拼接 where 查询过滤条件 见如下示例. 二.API 单表-完整 方法 举例 // 上下文条件 变量 v ...
- 关键字Run Keyword If 如何写多个条件语句、如何在一个条件下执行多个关键字
Run Keyword If 关键字给出的示例是: 但是,这往往不能满足我们实际需要,比如,我们需要同时判断多个条件是否成立,或者在条件成立时我们想要执行多个关键字,虽然可以进行封装再调用,但是比较麻 ...
- if语句 条件测试 shell编程之条件语句
shell 编程之条件语句一.条件测试 ① test命令 测试 ② 文件测试 ③ 整数值比较 ④ 字符串比较 ⑤ 逻辑测试二.if语句的结构 单分支结构 双分支结构 多分支结构三.ca ...
随机推荐
- PHP获取当日或本月时间戳范围
在mysql数据库中使用int类型保存时间戳时,一般在程序中可能会用到统计当日,当月的一些数据.那么可以用如下的方式限定时间范围: //当日销售 $today_start = strtotime( ...
- 第五篇--Chorme浏览器主页被篡改
解决方法:关闭谷歌浏览器,右击桌面快捷方式,查看属性,然后将target后面的网址删掉.并且任务栏的google打开方式,最好也把流氓网址删掉.之后就正常了.
- KMP子串匹配(只能匹配出唯一子串)
using namespace std; #include <iostream> #include<string> //自定义字符串存储结构String(包括char数组.le ...
- 浏览器中hook对象属性
先获取window对象属性 来源: 夜幕爬虫安全论坛 原文链接: http://bbs.nightteam.cn/thread-485.htm?orderby=desc&user=7
- Solon 1.5.22 发布
Solon 是一个轻量的Java基础开发框架.强调,克制 + 简洁 + 开放的原则:力求,更小.更快.更自由的体验.支持:RPC.REST API.MVC.Job.Micro service.WebS ...
- 线程优先级_priority
线程优先级_priority Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行 线程的优先级用数字表示,范围从1~10 Thread. ...
- Vue2.x响应式原理
一.回顾Vue响应式用法 vue响应式,我们都很熟悉了.当我们修改vue中data对象中的属性时,页面中引用该属性的地方就会发生相应的改变.避免了我们再去操作dom,进行数据绑定. 二.Vue响应 ...
- 数据增广imgaug库的使用
记录一下这两天用imgaug库做数据增广的代码,由于是算用算学的,所以只能把代码写出来,具体每种增广算法的原理和一些参数就不得而知了,不过我觉得也没必要把这么些个算法搜搞懂,毕竟重点是扩种数据.所以, ...
- 线性代数期末大总结I
行列式 n阶行列式的计算: \[\left|\begin{matrix}a_{11} & a_{12} & \cdots & a_{1n} \\a_{21} & a_{ ...
- MySQL全面瓦解27:主从复制(原理 + 实践)
概念 主从复制,是指建立一个和主数据库完全一样的数据库环境(称为从数据库),并将主库的操作行为进行复制的过程:将主数据库的DDL和DML的操作日志同步到从数据库上, 然后在从数据库上对这些日志进行重新 ...