K8s实战-基于LivenessProbe健康检查

发布时间:2023年12月29日

LivenessProbe探针用于判断容器是否存活,如果探测到容器不健康,则kubelet将杀掉该容器,然后根据重启策略处理。

LivenessProbe的实现方式:

  • ExecAction:在容器内部执行一个命令,如果该命令的返回码为0,则健康
  • TCPSocketAction:在容器内部使用TCP建立连接
  • HTTPGetAction:使用http方式访问容器服务,如果http相应码在200-400之间则认为容器健康

下面我们就一一来实践一下

1、ExecAction

yaml

apiVersion: v1 
kind: Pod 
metadata: 
  creationTimestamp: null 
  labels: 
    run: liveness 
  name: liveness 
spec: 
  containers: 
  - image: busybox 
    name: liveness 
    args: 
    - /bin/sh 
    - -c 
    - echo ok > /tmp/health; sleep 10; rm -rf /tmp/health; sleep 600 
    livenessProbe: 
      exec: 
        command: 
          - cat1
          - /tmp/health 
      initialDelaySeconds: 5
      timeoutSeconds: 1

我们把cat命令故意写错成cat1,测试如下:
在这里插入图片描述
可以看到探测不成功一直在重启,符合预期!

2、TCPSocketAction

yaml

apiVersion: v1 
kind: Pod 
metadata: 
  creationTimestamp: null 
  labels: 
    run: liveness 
  name: liveness 
spec: 
  containers: 
  - image: nginx
    name: liveness
    livenessProbe: 
      tcpSocket:
        port: 8080
      initialDelaySeconds: 5
      timeoutSeconds: 1

我们把port改成8080,测试如下:
在这里插入图片描述
可以看到探测失败在不断重启,符合预期!

3、HTTPGetAction

yaml

apiVersion: v1 
kind: Pod 
metadata: 
  creationTimestamp: null 
  labels: 
    run: liveness 
  name: liveness 
spec: 
  containers: 
  - image: nginx 
    name: liveness 
    livenessProbe: 
      httpGet: 
        port: 8080
        path: /
      initialDelaySeconds: 5
      timeoutSeconds: 1

测试如下:
在这里插入图片描述
可以看到探测失败在不断重启,符合预期!

文章来源:https://blog.csdn.net/qq_36588424/article/details/135274466
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。