Kubernetes健康检查与探测机制详解

1、K8s中默认的健康检查机制

k8s有强大的自愈能力,默认的自愈实现方式是自动重启发生故障的容器。

那么k8s是如何发现容器故障的呢?每个容器启动时都会执行一个进程,此进程由Dockerfile的CMD或ENTRYPOINT指定的。如果进程退出时返回码非零,则认为容器发生故障,K8s就会根据restartPolicy策略重启容器。

下面通过一个例子演示一下这种情况:先编写一个创建pod的文件,内容如下:

[root@master pod]# more healthcheck-pod.yml 
apiVersion: v1
kind: Pod
metadata:
 name: pod-healthcheck
 labels:
   test: healthcheck-test
spec:
  restartPolicy: OnFailure
  containers:
  - name: healthcheck
    image: busybox
    args:
    - /bin/sh
    - -c
    - sleep 10; exit 1   	#sleep 10; exit 1 模拟容器启动 10 秒后发生故障

接着,执行这个pod,查看pod状态:

[root@master pod]# kubectl  apply -f healthcheck-pod.yml 
[root@master pod]# kubectl  get pod
NAME                  READY                STATUS                  RESTARTS         AGE
pod-healthcheck       0/1                 CrashLoopBackOff          5               8m

<

猜你喜欢

转载自blog.csdn.net/qq_35029061/article/details/132201033