kubernets之存活探针
一 存活探针存在的意义
1.1 kubernet通过存活探针(liveness probe)检查容器是否还在运行,可以为pod中的每个容器单独指定存活探针,如果探针执行失败,kubernets会重启容器
二 存活探针的三种探测机制
2.1 HTTP GET探针是对容器的IP地址以及指定的端口执行HTTP GET请求,如果探测收到响应,并且响应的返回码是20x,30x则认为探测成功
如果探测的返回值不是或者根本不响应,则表示容器探测失败,需要重启容器
2.2 TCP套接字探针,是尝试在容器里面建立TCP端口连接,建立成功则探测成功,反之,则探测失败
2.3 Exec探针,在容器里面执行任意的命令,如果返回状态码是0则表示探测成功,反之则探测失败,需要重启容器
三 三种存活的创建示范以及代码展示
3.1 创建基于HTTP的存活探针的yaml配置
#cat kubia-liveness-probe.yml
apiVersion: v1
kind: Pod
metadata:
name: kubia-liveness
spec:
containers:
- image: luksa/kubia-unhealthy
name: kubia
livenessProbe:
httpGet:
path: /
port: 8080
initialDelaySecond: 15
ports:
- containerPort: 8080
protocol: TCP
3.2 创建该pod
k create -f kubia-liveness-probe.yml
pod/kubia-liveness created
3.3 等待几分钟观察pod的运行状况
[root@node01 Chapter04]# k get po
NAME READY STATUS RESTARTS AGE
kubia-liveness 1/1 Running 5 11m
3.4 观察pod的整个生命周期的状况(省略无关内容)
[root@node01 Chapter04]# k describe po kubia-liveness
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 12m default-scheduler Successfully assigned default/kubia-liveness to node01
Normal Created 6m38s (x3 over 10m) kubelet Created container kubia
Normal Started 6m38s (x3 over 10m) kubelet Started container kubia
Normal Killing 5m22s (x3 over 9m2s) kubelet Container kubia failed liveness probe, will be restarted
Normal Pulling 4m52s (x4 over 12m) kubelet Pulling image "luksa/kubia-unhealthy"
Normal Pulled 4m48s (x4 over 10m) kubelet Successfully pulled image "luksa/kubia-unhealthy"
Warning Unhealthy 2m2s (x13 over 9m22s) kubelet Liveness probe failed: HTTP probe failed with statuscode: 500
可以看到当在pod中加入存活探针之后,kubelet会周期性的去执行HTTP GET探针,并且在返回500返回码是显示探测失败,并重新拉取镜像,而不是简单的重启容器
四 配置有效探针需要注意的几点
4.1 存活探针应该检查什么
以上演示的探针仅仅是一个get请求,检测服务端是否响应,虽然看起来过于简单,但是对比没有探针的情况下已经是大大的进步了,但为了更好的进行存活检查,需要对get请求的路径
做更进一步详细的描述以达到将所有重要的组件进行检查,以确保这些组件都能健康稳定的运行
4.2 保存探针的轻量型
一个探针不应该过多的消耗系统资源,并且不可运行太长时间,这样会大大的减慢容器的运行,因为探针的cpu配额会计入容器的cpu配额
4.3 无需在探针里面实现重复循环
无需在探针检测逻辑实现重复循环
kubernets之存活探针的更多相关文章
- kubernets之就绪探针
一 介绍就绪探针 1.1 开始介绍就绪探针之前,让我们来提问几个问题?第一,在sevice这章我们了解到, 当流量从Ingress被转发到服务,然后服务从其维护当Endponits 里面列表查找到任 ...
- pod健康检查(liveness probe存活探针&&readiness probe 可读性探针)
在Kubernetes集群当中,我们可以通过配置liveness probe(存活探针)和readiness probe(可读性探针)来影响容器的生存周期.参考文档:https://kubernete ...
- Kubernetes学习笔记(二):部署托管的Pod -- 存活探针、ReplicationController、ReplicaSet、DaemonSet、Job、CronJob
存活探针 Kubernetes可以通过存活探针(liveness probe)检查容器是否存活.如果探测失败,Kubernetes将定期执行探针并重新启动容器. 官方文档请见:https://kube ...
- kubernetes的存活探针和就绪探针
1.存活探针 使用Kubernetes的一个主要好处是,可以给Kubernetes-个容器列表来由其保持容器在集群中的运行.可以通过让Kubernetes创建pod资源,为其选择一个工作节点并在该节点 ...
- k8s 存活探针,滚动更新
文章原文 存活探针 Kubelet使用liveness probe(存活探针)来确定何时重启容器.例如,当应用程序处于运行状态但无法做进一步操作,liveness探针将捕获到deadlock,重启处于 ...
- dubbo 协议的 K8s pod 存活探针配置
背景 某项目采用微服务架构,dubbo 框架,K8s 方式部署. 其中 HTTP 协议由网关应用统一处理,大部分应用仅提供 dubbo 协议. 目标 应用某个实例(pod)状态异常时,尝试自动重启恢复 ...
- k8s 存活探针(健康检查)
重启策略 (RestartPolicy ) Always:当容器终止退出后,总是重启容器,默认策略. OnFailure:当容器异常退出(退出状态码非0)时,才重启容器. Never:当容器终止退出, ...
- Kubernetes 存活、就绪探针
在设计关键任务.高可用应用程序时,弹性是要考虑的最重要因素之一. 当应用程序可以快速从故障中恢复时,它便具有弹性. 云原生应用程序通常设计为使用微服务架构,其中每个组件都位于容器中.为了确保Kuber ...
- 【七】Kubernetes 探针介绍 - 存活、就绪探针案例测试
一.探针概述 探针是有 kubelet 对容器执行的定期诊断,并不是由 Master 节点发起的探测,而是由每一个 Node 所在的 kubelet 进行探测,这样可以减轻 Master 节点系统负载 ...
随机推荐
- Day9 python高级特性-- 列表生成式 List Comprehensions
Python内置的非常简单却强大的可以用来创建list的生成式. 私理解为,就是for循环出来的结果搞成个list~~~~ 要生成顺序增量list可以使用list(range(x,y))来 ...
- SpringBoot基于JustAuth实现第三方授权登录
1. 简介 随着科技时代日渐繁荣,越来越多的应用融入我们的生活.不同的应用系统不同的用户密码,造成了极差的用户体验.要是能使用常见的应用账号实现全应用的认证登录,将会更加促进应用产品的推广,为生活 ...
- adb devices查看不到Android模拟器的设备
1.先开启模拟器,后执行adb devices命令: List of devices attached 2.找到SDK的安装目录下platform-tools文件夹下adb.exe文件,将其复制到桌面 ...
- rbd锁引起kvm虚拟机无法启动的故障
前言 环境因为一些问题(网络,或者磁盘,或者其它各种异常),引起了集群的状态的一些变化,变化之后,集群的某些虚拟机正常某些虚拟机出现异常,异常现象就是无法启动 特别是win server2008 ,会 ...
- Java篇:Docker的介绍安装 和常用命令
文章目录 为什么 出现docker Docker的简介 容器(Container) 镜像(Image) 仓库(Repository) Docker的安装 查看容器 删除镜像 删除容器 部署应用 以my ...
- Autofac官方文档翻译--二、解析服务--1解析参数传递
Autofac 传递解析参数 注册组件公开相应的服务之后,你可以从container构造器和子lifetime scopes 中解析服务.使用Resolve()方法来实现: var builder = ...
- 解决误删/bin/bash问题
出现原因:由于当时误操作把 /bin/bash 命令解释器二进制文件移到了/root 家目录里面,再重新登录系统之后,登陆进去什么也干干不了. 解决办法:让系统重启,以挂载光盘模式进入系统BIOS,选 ...
- 自己总结的关于图论的一些算法实现(C语言实现,有较详细注释,800行左右)
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 #define TRUE 1 5 # ...
- CSS系列 (04):盒模型详解
盒模型 CSS盒模型分成W3C标准盒模型和IE模型 W3C标准盒模型(默认):box-sizing: content-box padding和border都会撑开盒子,改变盒子的宽度高度 总宽度:wi ...
- JAVE JDK安装步骤
1.安装JDK 选择安装目录 安装过程中会出现两次 安装提示 .第一次是安装 jdk ,第二次是安装 jre .建议两个都安装在同一个java文件夹中的不同文件夹中.(不能都安装在java文件夹的根目 ...