Kubernetes---容器探针

痛定思痛。 2023-10-09 10:48 175阅读 0赞

⒈含义

  探针是由各个节点的kubelet对容器执行的定期诊断。要执行诊断,kubelet 调用由容器实现的Handler【处理程序】。有三种类型的处理程序:
    >ExecAction:在容器内执行指定命令。如果命令退出时返回码为0则认为诊断成功。
    >TCPSocketAction:对指定端口上的容器的IP地址进行TCP检查。如果端口打开,则诊断被认为是成功的。
    >HTTPGetAction:对指定的端口和路径上的容器的IP地址执行HTTPGet请求。如果响应的状态码大于等于200且小于400【2xx:成功,3xx:跳转】,则诊断被认为是成功的
  每次探测都将获得以下三种结果之一:
    >成功:容器通过了诊断。
    >失败:容器未通过诊断。
    >未知:诊断失败,因此不会采取任何行动【这将导致容器挂死,因为探针不执行成功的话,容器会一直在等待】

⒉探测方式

  livenessProbe【存活指针或叫存活探针】:指示容器是否正在运行。如果存活探测失败,则kubelet会杀死容器,并且容器将受到其重启策略的影响。如果容器不提供存活探针,则默认状态为Success

  readinessProbe【就绪指针或叫就绪探针】:指示容器是否准备好服务请求。如果就绪探测失败,端点控制器将从与Pod 匹配的所有Service的端点中删除该Pod的IP地址。初始延迟之前的就绪状态默认为Failure。如果容器不提供就绪探针,则默认状态为Success

⒊示例

  就绪指针 or 就绪探针

   HttpGet方式

  1. readinessProbe-httpget
  2. apiVersion: v1
  3. kind: Pod
  4. metadata:
  5. namereadiness-httpget-pod
  6. namespace: default
  7. spec:
  8. containers:
  9. - name: readiness-httpget-container
  10. image: coreqi/myapp:v1
  11. imagePullPolicy: IfNotPresent #镜像下载策略,如果存在则不下载
  12. readinessProbe: #就绪探针
  13. httpGet: #检测方案
  14. port: 80
  15. path: /index1.html
  16. initialDelaySeconds: 1 #初始化检测延时(1秒以后)
  17. periodSeconds: 3 #重试的检测时间(3秒以后)

  存活指针 or 存活探针

  Exec方式

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: liveness-exec-pod
  5. namespace: default
  6. spec:
  7. containers:
  8. - name: liveness-exec-container
  9. image: hub.coreqi.cn/1ibrary/busybox
  10. imagePullPolicy: IfNotPresent
  11. command: ["/bin/sh","-c","touch /tmp/live;sleep 60;rm -rf /tmp/live;sleep 3600"]
  12. livenessProbe: #探活指针
  13. exec: #执行命令
  14. command: ["test","-e","/tmp/live"] #检测文件是否存在
  15. initialDelaySeconds: 1 #容器启动1秒后执行
  16. periodSeconds: 3 #重试的循环时间为3秒

  HttpGet方式

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: liveness-httpget-pod
  5. namespace: default
  6. spec:
  7. containers:
  8. - name: liveness-httpget-container
  9. image: hub.coreqi.cn/1ibrary/myapp:v1
  10. imagePu11Policy: IfNotPresent
  11. ports:
  12. - name: http
  13. containerPort: 80
  14. 1ivenessProbe:
  15. httpGet:
  16. port: http
  17. path: /index.html
  18. initialDelaySeconds: 1 #延迟1秒以后开始检测
  19. periodSeconds: 3 #每3秒重复检测一次
  20. timeoutSeconds: 10 #每次访问时最大的超时时间

  Tcp方式

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: probe-tcp
  5. spec:
  6. containers:
  7. - name: nginx
  8. image: hub.coreqi.cn/1ibrary/myapp:v1
  9. livenessProbe:
  10. initialDelaySeconds: 5
  11. timeoutSeconds: 1
  12. tcpSocket:
  13. port: 80
  14. periodSeconds: 3

转载于:https://www.cnblogs.com/fanqisoft/p/11555342.html

发表评论

表情:
评论列表 (有 0 条评论,175人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Kubernetes---容器探针

    ⒈含义   探针是由各个节点的kubelet对容器执行的定期诊断。要执行诊断,kubelet 调用由容器实现的Handler【处理程序】。有三种类型的处理程序: