kubernets之就绪探针
一 介绍就绪探针
1.1 开始介绍就绪探针之前,让我们来提问几个问题?第一,在sevice这章我们了解到, 当流量从Ingress被转发到服务,然后服务从其维护当Endponits
里面列表查找到任一pod之后,就开始将该pod作为服务的后端来处理请求,如果是该pod需要提前预热,或者需要一段时间后才能提供服务,如此servcie也无从知晓?
第二 就是前面我已经介绍过存活探针,回顾一下其作用,存活探针的作用是,感知pod是否正常运行并定时反馈给管控器(RC等),当pod检测出异常之后,就会立马删除该pod
并且重启从镜像仓库里面拉起一摸一样的pod来代替这个异常pod,而就绪探针应该是什么样子的呢?下面对着这些疑问,让我们一起来认识就绪探针,并且分别解答这些问题
1.2 第一个问题,就是我们要讲的就绪探针,在pod中加入就绪探针,如果pod准备就绪,kubernets就会探测到就绪探针已经ready,可以作为后端的服务器来进行提供服务
反之,服务则会临时就pod剔除Endpoint的列表,等到pod准备就绪才开始将pod作为后端应用提供者加入,并且还可以给就绪探针添加一个延时,pod创建之后到这个时间
点才开始进行对就绪探针的探测
1.3 就绪探针的类型
- HTTP探针 对pod探针的内部发起http请求,通过相应的返回码判断是否达到就绪状态
- Exec探针 在pod内部执行命令,当命令执行结果返回为0则表示达到就绪
- Tcp socker探针 在pod内部尝试建立tcp连接,若创建成功则表示达到就绪状态
二 向pod中添加就绪探针
2.1 RC的文件定义
apiVersion: v1
kind: ReplicationController
...
spec:
...
template:
...
spec:
containers:
- name: kubia
image: luksa/kubia
readinessProbe:
exec:
command:
- ls
- /var/ready
- 如此会向RC中的每个pod都会添加一个就绪探针
- 对于之前创建的pod显示的状态仍然是ready,因为后面RC的修改对已经创建的pod没影响
- 如果删除了所有pod,然后在让RC重新根据模板来创建pod,此时pod里面又都没有这个文件,则这些pod都显示为not ready,并且不会作为服务的后端处理请求
三 就绪探针的一些注意事项
3.1 就绪探针应该是必须的,而不是可选的
对于微服务而言,都有很多的pod组合而成,当服务和pod被创建成功之后,就预示着就可能会有请求落到pod里面去,但是如果pod应用还没准备好,则客户端会反馈拒绝连接,这意味着
错误的异常发生,很容易给系统管理员或者k8s集群的研发人员造成困惑
3.2 如果想要从服务中添加pod只需要在pod上面添加标签和服务的标签选择器里面添加enabled=true,同理删除的时候可以将标签删除
3.3 不需要将容器终于程序添加到就绪探针的逻辑里面,因为只要容器关机,kubernets会从所有的服务中移除这个pod,所有不需要多此一举的去实现这个从服务移除逻辑
kubernets之就绪探针的更多相关文章
- Kubernetes 存活、就绪探针
在设计关键任务.高可用应用程序时,弹性是要考虑的最重要因素之一. 当应用程序可以快速从故障中恢复时,它便具有弹性. 云原生应用程序通常设计为使用微服务架构,其中每个组件都位于容器中.为了确保Kuber ...
- 【七】Kubernetes 探针介绍 - 存活、就绪探针案例测试
一.探针概述 探针是有 kubelet 对容器执行的定期诊断,并不是由 Master 节点发起的探测,而是由每一个 Node 所在的 kubelet 进行探测,这样可以减轻 Master 节点系统负载 ...
- kubernetes的存活探针和就绪探针
1.存活探针 使用Kubernetes的一个主要好处是,可以给Kubernetes-个容器列表来由其保持容器在集群中的运行.可以通过让Kubernetes创建pod资源,为其选择一个工作节点并在该节点 ...
- kubernets之存活探针
一 存活探针存在的意义 1.1 kubernet通过存活探针(liveness probe)检查容器是否还在运行,可以为pod中的每个容器单独指定存活探针,如果探针执行失败,kubernets会 ...
- kubernets之Deployment资源
一 声明式的升级应用 1.1 回顾一下kubernets集群里面部署一个应用的形态应该是什么样子的,通过一副简单的图来描述一下 通过RC或者RS里面的模板创建了三个pod,之后通过一个servci ...
- Pod——状态和生命周期管理及探针和资源限制
一.什么是Podkubernetes中的一切都可以理解为是一种资源对象,pod,rc,service,都可以理解是 一种资源对象.pod的组成示意图如下,由一个叫”pause“的根容器,加上一个或多个 ...
- Kubernetes---容器探针
⒈含义 探针是由各个节点的kubelet对容器执行的定期诊断.要执行诊断,kubelet 调用由容器实现的Handler[处理程序].有三种类型的处理程序: >ExecAction:在容器内执行 ...
- K8S容器探针
容器探针 探针是由 kubelet对容器执行的定期诊断.要执行诊断, kubelet 调用由容器实现的 Handler .有三种类型的处理程序: ExecAction :在容器内执行指定命令 ...
- kubernets全套笔记
Master/node Master核心组件: API server,Scheduler,Controller-Manager etcd(存储组件) Node核心组件: kubelet(核心组件) ...
随机推荐
- CentOS6下的ElasticSearch运行步骤
如何运行ElasticSearch: 1.首先安装jdk1.8版本或以上. 2.下载elasticsearch的压缩包.(我下载的是elasticsearch-6.3.2.tar.gz) 3.使用命令 ...
- [日常摸鱼]HDU2157 How many ways??
hhh我又开始水题目了 题意:给一张有向图,多次询问一个点到另一个点刚好走$k$步的方案数取模,点数很小 每个$a,b,k$的询问直接把邻接矩阵$map$自乘$k$次后$map[a][b]$就是答案了 ...
- Hexo结合Stun静态博客搭建从入门到入土
摘要 安装npm,安装hexo相关依赖,安装主题stun 修改hexo配置,修改stun配置,部署到github,gitee实现静态访问 给博客加上全局搜索,访问量统计 hexo博客编写模板 tips ...
- java_day03
一.this关键字的作用 昨天学了Java private 关键字 ,private关键字主要是为了 保护变量 ,感觉用着好像并不是特别方便 如果需要访问本类当中的成员变量,需要使用的格式: this ...
- [BUUOJ]刮开有奖reverse
刮开有奖 这是一个赌博程序,快去赚钱吧!!!!!!!!!!!!!!!!!!!!!!!!!!!(在编辑框中的输入值,即为flag,提交即可) 注意:得到的 flag 请包上 flag{} 提交 1.查壳 ...
- 图解Python中深浅拷贝
在工作中,常涉及到数据的传递,在数据传递使用过程中,可能会发生数据被修改的问题.为了防止数据被修改,就需要在传递一个副本,即使副本被修改,也不会影响原数据的使用.为了生成这个副本,就产生了拷贝.今天就 ...
- C#中打印拼接的字符串
实例化打印文档 //声明打印对象 PrintDocument pd = new PrintDocument(); int ilvPreviewIndex = 0; 在打印事件中设置基本属性 priva ...
- [.NET] - EventSource类的使用
EventSource类: 这个类是在.NET 4.5新推出的一个类,用来提供创建事件用于 Windows 事件跟踪的功能 (ETW).在之前如果要配置一个Event Tracing for Wind ...
- 容器编排系统K8s之StatefulSet控制器
前文我们聊到了k8s的configmap和secret资源的说明和相关使用示例,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/14194944.html:今天 ...
- java斐波纳契数列
//斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1.1.2.3.5.8.13.21.-- 这个数列从第三项开始,每一项都等于前两项之和. public class DiGui { public ...