Kubernetes---容器探针
⒈含义
探针是由各个节点的kubelet对容器执行的定期诊断。要执行诊断,kubelet 调用由容器实现的Handler【处理程序】。有三种类型的处理程序:
>ExecAction:在容器内执行指定命令。如果命令退出时返回码为0则认为诊断成功。
>TCPSocketAction:对指定端口上的容器的IP地址进行TCP检查。如果端口打开,则诊断被认为是成功的。
>HTTPGetAction:对指定的端口和路径上的容器的IP地址执行HTTPGet请求。如果响应的状态码大于等于200且小于400【2xx:成功,3xx:跳转】,则诊断被认为是成功的
每次探测都将获得以下三种结果之一:
>成功:容器通过了诊断。
>失败:容器未通过诊断。
>未知:诊断失败,因此不会采取任何行动【这将导致容器挂死,因为探针不执行成功的话,容器会一直在等待】
⒉探测方式
livenessProbe【存活指针或叫存活探针】:指示容器是否正在运行。如果存活探测失败,则kubelet会杀死容器,并且容器将受到其重启策略的影响。如果容器不提供存活探针,则默认状态为Success
readinessProbe【就绪指针或叫就绪探针】:指示容器是否准备好服务请求。如果就绪探测失败,端点控制器将从与Pod 匹配的所有Service的端点中删除该Pod的IP地址。初始延迟之前的就绪状态默认为Failure。如果容器不提供就绪探针,则默认状态为Success
⒊示例
就绪指针 or 就绪探针
HttpGet方式
readinessProbe-httpget
apiVersion: v1
kind: Pod
metadata:
name:readiness-httpget-pod
namespace: default
spec:
containers:
- name: readiness-httpget-container
image: coreqi/myapp:v1
imagePullPolicy: IfNotPresent #镜像下载策略,如果存在则不下载
readinessProbe: #就绪探针
httpGet: #检测方案
port: 80
path: /index1.html
initialDelaySeconds: 1 #初始化检测延时(1秒以后)
periodSeconds: 3 #重试的检测时间(3秒以后)
存活指针 or 存活探针
Exec方式
apiVersion: v1
kind: Pod
metadata:
name: liveness-exec-pod
namespace: default
spec:
containers:
- name: liveness-exec-container
image: hub.coreqi.cn/1ibrary/busybox
imagePullPolicy: IfNotPresent
command: ["/bin/sh","-c","touch /tmp/live;sleep 60;rm -rf /tmp/live;sleep 3600"]
livenessProbe: #探活指针
exec: #执行命令
command: ["test","-e","/tmp/live"] #检测文件是否存在
initialDelaySeconds: 1 #容器启动1秒后执行
periodSeconds: 3 #重试的循环时间为3秒
HttpGet方式
apiVersion: v1
kind: Pod
metadata:
name: liveness-httpget-pod
namespace: default
spec:
containers:
- name: liveness-httpget-container
image: hub.coreqi.cn/1ibrary/myapp:v1
imagePu11Policy: IfNotPresent
ports:
- name: http
containerPort: 80
1ivenessProbe:
httpGet:
port: http
path: /index.html
initialDelaySeconds: 1 #延迟1秒以后开始检测
periodSeconds: 3 #每3秒重复检测一次
timeoutSeconds: 10 #每次访问时最大的超时时间
Tcp方式
apiVersion: v1
kind: Pod
metadata:
name: probe-tcp
spec:
containers:
- name: nginx
image: hub.coreqi.cn/1ibrary/myapp:v1
livenessProbe:
initialDelaySeconds: 5
timeoutSeconds: 1
tcpSocket:
port: 80
periodSeconds: 3
Kubernetes---容器探针的更多相关文章
- kubernetes容器探针检测
系列目录 kubernetes提供了livenessProbe(可用性探针)和readinessProbe(就绪性探针)对容器的健康性进行检测,当然这仅仅简单的关于可用性方面的探测,实际上我们不仅仅要 ...
- K8S容器探针
容器探针 探针是由 kubelet对容器执行的定期诊断.要执行诊断, kubelet 调用由容器实现的 Handler .有三种类型的处理程序: ExecAction :在容器内执行指定命令 ...
- 掌握SpringBoot-2.3的容器探针:基础篇
欢迎访问我的GitHub 地址:https://github.com/zq2599/blog_demos 内容:原创文章分类汇总,及配套源码,涉及Java.Docker.K8S.DevOPS等 关于& ...
- 掌握SpringBoot-2.3的容器探针:深入篇
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:原创分类汇总及配套源码,涉及Java.Docker.K8S.DevOPS等 关于<Spr ...
- 掌握SpringBoot-2.3的容器探针:实战篇
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:原创文章分类汇总,及配套源码,涉及Java.Docker.K8S.DevOPS等 经过多篇知识 ...
- 容器探针(liveness and readiness probe)
一.为什么需要容器探针 如何保持Pod健康 只要将pod调度到某个节点,Kubelet就会运行pod的容器,如果该pod的容器有一个或者所有的都终止运行(容器的主进程崩溃),Kubelet将重启容 ...
- kubernetes容器删除时快速释放ip的方案
问题的来由 在kubernetes集群的生产中,经常遇到这样的一个问题,就是在应用大规模更新时,大量容器删除而后大量容器创建,创建的容器需要很长时间才能就绪.这其中一个可能的原因,就是大量容器删除释放 ...
- Kubernetes容器上下文环境
目录贴:Kubernetes学习系列 下面我们将主要介绍运行在Kubernetes集群中的容器所能够感知到的上下文环境,以及容器是如何获知这些信息的. 首先,Kubernetes提供了一个能够让容器感 ...
- Docker Kubernetes 容器扩容与缩容
Docker Kubernetes 容器扩容与缩容 环境: 系统:Centos 7.4 x64 Docker版本:18.09.0 Kubernetes版本:v1.8 管理节点:192.168.1.79 ...
- Docker Kubernetes 容器更新与回滚
Docker Kubernetes 容器更新与回滚 环境: 系统:Centos 7.4 x64 Docker版本:18.09.0 Kubernetes版本:v1.8 管理节点:192.168.1.79 ...
随机推荐
- Liunx之MySQL安装与主从复制
MYSQL安装(mariadb) MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可. 开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL ...
- 记录下我用Jenkins打包碰到的坑
使用Andorid Studio 打包都是正常的,但是使用Jenkins自动打包一直报错,尝试过网上的各种方案,依然都不行,报错如下. FAILURE: Build failed with an ex ...
- JDK1.6历史版本的下载(關於TLSv1.2)Oracle的官方文檔
[资源描述]:对于部分老项目 仍然采用的是JDK1.6 版本 但是打开官方 JDK 都是最新的 版本 想找 历史版本 不容易找到 [资源详情]:提供下载链接: http://www.oracle.co ...
- Maven版本问题导致的 unable to import maven project, see logs for details. 问题
新电脑安装了基础环境后,jdk,maven也都安装好了,idea安装后,导入Java项目一切正常,但是idea中code一直导入import依赖包出现问题,错误提示:unable to import ...
- 冲刺阶段——Day5
[今日进展] 完成注册功能代码 import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionLi ...
- COM组件双接口对象模型
模型如下: 这里COM对象一共实现了三个接口,IUnknown,IDispatch, Ixxx. 每个COM都必须实现IUnknown,不考虑在内的话共实现了IDispatch和自定义接口Ixxx两个 ...
- LeetCode 被围绕的区域
给定一个二维的矩阵,包含 'X' 和 'O'(字母 O). 找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充. 示例: X X X X X O O X X X O X X ...
- 《你不知道的JavaScript(上)》笔记——作用域是什么
Javascript是一门编译语言,它不是提前编译的, 编译结果也不能在分布式系统中进行移植. 在传统编译语言的流程中, 程序中的一段源代码在执行之前会经历三个步骤, 统称为"编译" ...
- [Java复习] Spring IoC
1. Spring bean的生命周期? 1. 对Bean进行实例化(相当于new) 对于BeanFactory 当客户向容器请求一个尚未初始化的bean(或初始化bean需要注入另外一个尚未初始化的 ...
- linux:解决SSH连接Linux超时自动断开
用SSH登录到Linux的时候,由于默认的连接超时时间很短,经常断开! 1.修改文件 # vi /etc/ssh/sshd_config 2.重启sshd服务 # /etc/init.d/sshd r ...