zoukankan      html  css  js  c++  java
  • k8s 探针 exec多个判断条件条件 多个检测条件

    背景

    1,之前我们的yaml文件里面有就绪探针。

    2,探针是检测一个文件是否生成,生成了说明服务正常。

    3,现在要加一个检测,也是一个文件是否存在并且不为空。

    4,只有两个条件同时满足了 服务才算正常。然后就可以给外部提供服务了。

    一、k8s的探针

     

    1,K8s的探针,其实就是一种检测预设是否满足一种条件,然后做出相应的动作。

    2,比如检测容器是否正常,服务是否正常,是一种提前做出反应的一种手段机制。

    3,容器的启动和服务的状态是我们最关心的。

    4, 存活探针:检测容器是否启动存活

          就绪探针:检测服务是否正常,不正常之前是unready,不加入endport。

          启动探针:设置了启动探针,则禁止所有的其他探针,知道他成功为止。

     

    二、探针的探测方式

     

    1exec,命令式探测,命令或者脚本,返回非0为失败。

    2,HTTP请求接口,任何大于或等于 200 并且小于 400 的返回代码标示成功,其它返回代码都标示失败。

    3TCP链接检测,建立连接则为正常。

     

     三、exec command 多个检测条件

     

    1,其实我们开发的需求还是非常的明确的,就是多加一个检测条件。

    2,如果检测的文件存在且不为空,那么这个Pod就不让提供服务。

     

    3.1 分析

    1,不让pod提供服务,那么只有就绪探针满足。

    2,我去检查了一下我们的yaml文件,里面的就绪探针是有东西的。

    3,那么久只能在原先的基础上面加。

     

    3.2 原始的探针

     

    其实就是检测了一下这个文件存不存在。

          readinessProbe:
              exec:
                command:
                - test
                - -f
                - /var/www/html/.env
              initialDelaySeconds: 2
              periodSeconds: 2
              timeoutSeconds: 2
              failureThreshold: 15

    3.3 加上另一个检测条件 

     

    1,那么只要这个命令执行最后的返回值为0,那么这个探针就是成功的

    2,如果/tmp/database_migrate_error.log文件存在且不为空,那么就会执行ceshi命令,

         这个命令根本就没有,所以肯定会失败。所以返回非0,所以这个容器就会一直处于unready状态。

    3,这样就满足了开发的需求。容器不提供服务。

            readinessProbe:
              exec:
                command:
                - /bin/sh
                - -c
                - test -f /var/www/html/.env && if [ -s /tmp/database_migrate_error.log ]; then ceshi; fi
              initialDelaySeconds: 2
              periodSeconds: 2
              timeoutSeconds: 2
              failureThreshold: 15

    四、总结

     

    1,首先我这篇随笔只是记录了一个点,探针的exec 多个检测条件。

    2,关于k8s整个探针的随笔我后期会写一篇单独的。

    3,附上官网地址:https://kubernetes.io/zh/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes

     

    写的不好,请多多指教:https://www.cnblogs.com/fanfanfanlichun/

     

     

     

     

  • 相关阅读:
    Nginx流量拷贝
    Nginx基于站点目录和文件的URL访问控制
    Nginx禁止ip访问或非法域名访问
    Nginx动静分离
    Nginx隐藏式跳转(浏览器URL跳转后保持不变)
    Harbor镜像仓库(含clair镜像扫描)
    Pod的QoS服务质量等级
    Pod容器应用"优雅发布"
    Pod容器自动伸缩(HPA) 测试
    NFS双机热备高可用环境
  • 原文地址:https://www.cnblogs.com/fanfanfanlichun/p/15206016.html
Copyright © 2011-2022 走看看