# 1. 探针的作用
1. kubelet定期对容器进行诊断,检查容器运行状态(**存活状态和就绪状态**)
2. 探针包括和就绪探针两种类型
3. 探针检测方法
* `ExecAction`: 在容器内执行指定命令。如果命令退出时返回码为 0 则认为诊断成功,非 0 都属于不成功。
* `TCPSocketAction`: 对容器的 IP 地址上的指定端口执行 TCP 检查。如果端口打开,则诊断被认为是成功的。
* `HTTPGetAction`: 对容器的 IP 地址上指定端口和路径执行 HTTP Get 请求。如果响应的状态码大于等于 200 且小于 400,则诊断被认为是成功的。
# 2. liveness Probe
1. 是一个存活探测器,会随着 Pod 生命周期一直循环检测。
2. 探测容器是否正在运行,如果存活探测失败,则 kubelet 会杀死容器,然后根据其容器的`重启策略`来对容器进行操作,默认为 Always,则 Pod 进行重启。
## 2.1 执行Linux命令
```
apiVersion: v1
kind: Pod
metadata:
name: liveness-exec # Pod 名称
namespace: test # Pod 所在的命名空间
spec:
containers:
- name: liveness-exec-container # 容器名称
image: hub.test.com/library/busybox:latest # 镜像地址
imagePullPolicy: IfNotPresent # 镜像下载策略
command: ["/bin/sh","-c","touch /tmp/live; sleep 60; rm -rf /tmp/live; sleep 3600"]
# 创建 live 文件,休眠60秒,删除 live 文件,再休眠 1 分钟。
livenessProbe: # 存活探测
exec: # 检测方案
command: ["test","-e","/tmp/live"] # 检测该文件是否存在,返回值 0 成功,非 0 失败
initialDelaySeconds: 3 # 启动后多少秒开始第一次检测
periodSeconds: 3 # 每次间隔检测时间
```
## 2.2 执行HTTP
```
apiVersion: v1
kind: Pod
metadata:
name: liveness-httpgat # Pod 名称
namespace: test # Pod 所在的命名空间
spec:
containers:
- name: liveness-httpgat-container # 容器名称
image: hub.test.com/library/mynginx:v1 # 镜像地址
imagePullPolicy: IfNotPresent # 镜像下载策略
ports:
- name: http
containerPort: 80
livenessProbe: # 存活探测
httpGet: # 检测方案
port: http
path: /index.html
initialDelaySeconds: 3 # 启动后多少秒开始第一次检测
periodSeconds: 3 # 每次间隔检测时间
timeoutSeconds: 10 # 探测的超时时间
```
## 2.3 执行TCP
```
apiVersion: v1
kind: Pod
metadata:
name: liveness-tcp # Pod 名称
namespace: test # Pod 所在的命名空间
spec:
containers:
- name: liveness-tcp-container # 容器名称
image: hub.test.com/library/mynginx:v1 # 镜像地址
imagePullPolicy: IfNotPresent # 镜像下载策略
livenessProbe: # 存活探测
tcpSocket: # 检测方案
port: 8080 # 检测端口
initialDelaySeconds: 3 # 启动后多少秒开始第一次检测
periodSeconds: 3 # 每次间隔检测时间
```
# 3. readiness Probe
1. 是一个就绪探测器,检测 Pod 是否到达就绪状态,只有达到就绪状态了才可以对外提供服务
2. 当一个 Pod 内的所有容器都准备好了,才能把这个 Pod 看作就绪了。
```
apiVersion: v1
kind: Pod
metadata:
name: readiness-httpget # Pod 名称
namespace: test # Pod 所在的命名空间
spec:
containers:
- name: readiness-httpget-container # 容器名称
image: nginx:1.14.0 # 镜像地址
imagePullPolicy: IfNotPresent # 镜像下载策略
readinessProbe: # 就绪探测
httpGet: # 检测方案
path: /index1.html # 检测路径
port: 80 # 检测端口
initialDelaySeconds: 3 # 启动后多少秒开始第一次检测
periodSeconds: 3 # 每次间隔检测时间
```
- docker
- docker安装
- 数据持久化
- 镜像管理
- Dockerfile
- 镜像的分层
- add copy
- 构建实例
- 镜像的导入导出
- 清理构建空间
- 配置阿里云加速器
- docker网络模型
- 本地仓库
- registry
- harbor
- IDEA部署docker
- 软件安装
- 安装es
- 安装MongoDB
- 安装rabbitmq
- 安装redis
- 安装nacos
- 安装mysql
- Minio
- 镜像中心
- kubernetes
- 1. 安装k8s
- 2.主要组件
- 3.污点
- 4.pod
- 5.控制器
- 6.网络
- 7.探针
- 8.安装Dashbord
- 9.secret
- 9.serviceAccount
- 10.service
- 资源清单
- kube-proxy
- flannel源文件
- 服务升级
- 笔记
- 镜像