# 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源文件
- 服務升級
- 筆記
- 鏡像