首页 > 其他分享 >k8s-pod 健康检查

k8s-pod 健康检查

时间:2023-05-31 16:02:32浏览次数:51  
标签:livenessProbe name timeoutSeconds 检查 initialDelaySeconds 健康检查 pod k8s


k8s-pod 健康检查

pod健康检查有两类探针检查:livenessProbe 和ReadinessProbe

1、livenessprobe 健康状态检查,周期性检查存活,检查失败,将重启容器

2、readinessProbe 可用性检查,检查服务是否可用,不可用将从service的endpoint中移除

探针的检测方法

exec,执行一段命令,命令执行返回的状态为0则成功,表示我们探测结果正常

httpGet,检测某个http请求的返回状态码,返回码如果是200-400之间表示成功

tcpsocket 测试某个端口是否能够连接,端口开放表示成功

livenessProbe 存活探测实例

1、execaction 检查方法

apiVersion: v1

kind: Pod

metadata:

     labels:

         test: liveness

     name: liveness-exec

spec:

     containers:

      - name:liveness

         image:  gcr.io/google_containers/busybox

         args:

         -  /bin/sh

         -  -c

         -  echo ok >/tmp/checkhealth;sleep 10;rm -fr /tmp/checkhealth; sleep 600

          livenessProbe:

               exec:

                  command:

                   - cat

                   - /tmp/checkhealth

                initialDelaySeconds: 15

                timeoutSecond: 1

2、TCPSocketAction:能够建立tcp链接,表明容器健康。

apiVersion: v1

kind: Pod

metadata:

          name: pod-with-tcpcheck

spec:

          containers:

          - name: nginx

               image: nginx

               ports:

               - containerPort: 88

                livenessProbe:

                      tcpSocket:

                          port:88

                       initialDelaySeconds: 30

                       timeoutSeconds: 1

3、HTTPGetAction: 通过容器的IP地址、端口号及路径调用HTTP Get方法

apiVersion: v1

kind: Pod

metadata:

         name:  pod-with-httpgetcheck

spec:

        containers:

        -  name: nginx

            image: nginx

            ports;  

            -   containerPort: 81

            livenessProbe:

                    httpGet:

                           path: /tmp/healthz

                           port: 81

                    initialDelaySeconds: 30

                    timeoutSeconds: 1

对于每种探测方式,都需要设置 initialDelaySeconds和timeoutSeconds

initialDelaySeconds 运行容器首次健康检查的等待时间

timeoutSeconds: 健康检查发送请求响应的超时时间,超时发生,这说明服务已经不存在了

ReadinessProbe探针实例

1、httpget 方法检查存活

readinessProbe:

    failureThreshold: 3

    httpGet:

         path: /ready

         port:  8181

         scheme: HTTP

     periodSeconds: 10

     successThreshold: 1

     timeoutSeconds: 1

2、检查文件内容

readinessProbe:

      exec:

           command:

           - cat  

           - /etc/hosts

      initialDelaySeconds: 5

      timeoutSeconds:  2

      successThreshold: 3

      failureThreshold: 2

      periodSeconds: 5





               

 

               

 

标签:livenessProbe,name,timeoutSeconds,检查,initialDelaySeconds,健康检查,pod,k8s
From: https://blog.51cto.com/u_16056808/6387788

相关文章

  • k8s强制删除namesapce
    背景在删除namespace时,其状态一直为Terminating 解决方法:删除 finalizers获取待删除namespace的信息kubectlgetnspro-ojson>test.json删除其中的 finalizers部分vitest.json"spec":{"finalizers":["kubernetes"]......
  • kubeasz部署k8s集群
    官网:https://github.com/easzlab/kubeasz架构图免密登入ssh-keygenssh-copy-id172.16.251.4ssh-copy-id172.16.251.5ssh-copy-id172.16.251.6ssh-copy-id172.16.251.7ssh-copy-id172.16.251.8ssh-copy-id172.16.251.9下载ezdown脚本root@k8s-deploy:~#exp......
  • k8s强制删除CRD
    在Kubernetes中,当你删除一个自定义资源对象时,默认情况下其实并不会真正删除。相反,Kubernetes会将该对象的状态更新为“Terminating”,并在其metadata.finalizers字段中添加一些值,以确保相关的清理工作被完成后再真正删除该对象。如果你想要强制删除一个自定义资源对象,你需要......
  • 什么是特权容器?如何在k8s中运行特权容器?
    1、什么是特权容器? 特权容器(PrivilegedContainer),就是可以像在主机上的操作一样,几乎可以对主机进行任何的操作,比如,要修改容器的内核参数,是要对容器的网络命名空间进行修改的,默认是不允许修改的 如果将容器变为了特权容器,就可以进行修改了。 比如,calico容器,在启动的时候......
  • windows访问k8s
    windows访问ekspods安装AWSCLI网址为https://awscli.amazonaws.com/AWSCLIV2.msi。查看aws版本。aws--version配置AWSCLI凭证eksctl和AWSCLI均要求您在环境中配置AWS凭证。awsconfigure命令是设置安装以供一般使用的最快方法。$awsconfigureAWSAccess......
  • pb文件本地pod管理
    Pod::Spec.newdo|s|s.name='AKProtoOC's.version='1.0.0's.license='MIT's.summary='PB文件本地库管理's.homepage='https://xx......
  • K8s如何查看pod崩溃前的日志及其
    K8s如何查看pod崩溃前的日志及其原理lulu的云原生笔记 K8S中文社区 2023-05-3019:15 发表于湖南场景当pod处于crash状态的时候,容器不断重启,此时用 kubeletlogs 可能出现一直捕捉不到日志。解决方法:kubectlprevious 参数作用:Iftrue,printthelogsfortheprevio......
  • hj_podman_jenkins_maven_git_springboot_ssh一键部署项目
    podmanpulljenkins/jenkins:jdk17podmanrun-d--privileged=true\-uroot--namejenkins_jdk17_8081\-p8081:8080-p50001:50000\-v/hj_files/jenkins_jdk17:/var/jenkins_home\a307650508c6http://105.35.260.230:8081/ 安装好推荐配置后.再安装俩插件  Mave......
  • k8s节点宕机排查
    查看集群信息发现节点宕机 排查:1、查看服务器的物理环境free-mh/df-h2、查看内存是否溢出,磁盘空间是否够用,经查均在正常使用范围内;3、top查看cpu使用状态,在可用范围内;4、再查master组件scheduer,controller-manager,apiserver等都在正常运行;5、查看node详细信息[root@master~......
  • k8s常用的命令
    下面是一些常用的Kubernetes(K8s)命令,以及它们的简要说明。这些命令可以帮助您管理和操作Kubernetes集群中的资源。集群管理命令:kubectlcluster-info:显示集群的基本信息。kubectlconfiguse-context<context_name>:切换到指定的上下文。kubectlgetnodes:列出集群中......