Overview
探针类型有三种:
ExecAction, TCPSocketAction, HTTPGetActon
资源清单1
vim liveness-exec.yaml
apiVersion: v1
kind: Pod
metadata:
name: liveness-exec-pod
namespace: default
spec:
containers:
- name: liveness-exec-container
image: busybox: latest
imagePullPolicy: IfNotPresent
command: ["/bin/sh", "-c", "touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 3600"]
livenessProbe:
exec:
command: ["test", "-e", "/tmp/healthy"]
initialDelaySeconds: 1
periodSeconds: 3
restartPolicy:
资源清单2
vim liveness-httpget.yaml
apiVersion: v1
kind: Pod
metadata:
name: liveness-httpget-pod
namespace: default
spec:
containers:
- name: liveness-httpget-container
image: ikubernetes/myapp:v1
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort:80
livenessProbe:
httpGet:
port: http
path: /index.html
initialDelaySecond: 1
perioSeconds: 3
资源清单3
vim readiness-httpget.yaml
apiVersion: v1
kind: Pod
metadata:
name: readiness-httpget-pod
namespace: default
spec:
containers:
- name: readiness-httpget-container
image: ikubernetes/myapp:v1
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 80
readlinessProbe:
httpGet:
port: http
path: /index.html
initialDelaySeconds: 1
periodSeconds: 3
资源清单4
vim portstart-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: portstart-pod
namespace: default
spec:
containers:
- name: busybox-httpd
image: busybox-latest
imagePulPolicy: IfNotPresent
lifecycle:
postStart:
exec:
command: ["/bin/sh", "-c", "echo Home Page >> /tmp/index.html"]
#command: ['/bin/sh', '-c', 'sleep 3600']
command: ['/bin/httpd']
args: ["rm", "-f", "/tmp/html"]
应用实例
-
示例1, 查看livenessProbe的使用说明
kubectl explian pods.spec.containers.livenessProbe
-
示例2, 创建清单实例,
kubectl create -f liveness-exec.yaml
-
示例3, 查看pods的具体描述信息,
kubectl describe pods liveness-exec-pod
-
示例4, 使用
httpGet
进行探测,kubectl explain pods.spec.containers.livenessProbe.httpGet
-
示例5, 创建第2个资源清单,
kubectl create -f liveness-httpget.yaml
-
示例6, 连接进入liveness-httpget-pod容器,并且手动删除容器中的文件,
kubectl exec -it liveness-httpget-pod -- /bin/sh
rm -rf /usr/share/nginx/html/index.html
-
示例7, 查看kubectl的探测结果,
kubectl describe pods liveness-httpget-pod
-
示例8, 创建第3个资源清单,
kubectl create -f readiness-httpget.yaml
-
示例9, 接入readiness-httpget容器,并删除文件.
kubectl exec -it readiness-httpget-pod -- /bin/sh
rm -f /usr/share/nginx/html/index.html
-
示例10, 启动第4个资源清单,
kubectl create -f portstart-pod.yaml
-
示例11, 接入poststart-pod容器,
kubectl exec -it poststart-pod -- /bin/sh
后续问题待解决
-
探针是什么?
-
这里的探测是在做什么?
-
不断的删除文件,是在检查什么?