使用liveness探针httpget方式检测pod健康,httpGet方式使用的最多

[root@k8s-master1 tanzhen]# cat nginx_pod_httpGet.yaml
apiVersion: v1
kind: Pod
metadata:
name: httpget
labels:
app: my-dep
spec:
containers:
- name: nginx
image: centos-nginx:1.23.0
imagePullPolicy: Never
ports:
- containerPort: 80 livenessProbe:
httpGet:
path: /index.html
port: 80
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 3
successThreshold: 1
failureThreshold: 2

创建pod

[root@k8s-master1 tanzhen]# kubectl create -f nginx_pod_httpGet.yaml
pod/httpget created

查询pod描述

由于检测的是Nginx80端口index.html页面,这个连接正常存在,所以状态一直是Normal

[root@k8s-master1 ~]# kubectl describe pod httpget
Name: httpget
Namespace: default
Priority: 0
Node: k8s-node1/192.168.198.146
Start Time: Tue, 23 Aug 2022 10:56:44 +0800
Labels: app=my-dep
Annotations: <none>
Status: Running
IP: 10.244.1.53
IPs:
IP: 10.244.1.53
Containers:
nginx:
Container ID: docker://00e017fcb9763c113b39433f1e33516d25ed9426f85bca78e89f17c13a0c0282
Image: centos-nginx:1.23.0
Image ID: docker://sha256:704f81f69b5bf4f7b52006b1ebea4c4c25c92dd95994dacad66780ae82395607
Port: 80/TCP
Host Port: 0/TCP
State: Running
Started: Tue, 23 Aug 2022 10:56:45 +0800
Ready: True
Restart Count: 0
Liveness: http-get http://:80/index.html delay=5s timeout=3s period=5s #success=1 #failure=2
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-clqrl (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
default-token-clqrl:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-clqrl
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 6m34s default-scheduler Successfully assigned default/httpget to k8s-node1
Normal Pulled 6m32s kubelet Container image "centos-nginx:1.23.0" already present on machine
Normal Created 6m32s kubelet Created container nginx
Normal Started 6m32s kubelet Started container nginx

重新发布一个pod:httpget2,检测端口改成8080,测试检测结果

apiVersion: v1
kind: Pod
metadata:
name: httpget2
labels:
app: my-dep
spec:
containers:
- name: nginx
image: centos-nginx:1.23.0
imagePullPolicy: Never
ports:
- containerPort: 80 livenessProbe:
httpGet:
path: /index.html
port: 8080
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 3
successThreshold: 1
failureThreshold: 2
[root@k8s-master1 tanzhen]# kubectl apply -f nginx_pod_httpGet.yaml
pod/httpget2 created

探针检测 Get "http://10.244.1.54:8080/index.html"失败,容器kill掉重启

Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 46s default-scheduler Successfully assigned default/httpget2 to k8s-node1
Normal Pulled 13s (x4 over 45s) kubelet Container image "centos-nginx:1.23.0" already present on machine
Normal Created 13s (x4 over 45s) kubelet Created container nginx
Normal Started 13s (x4 over 45s) kubelet Started container nginx
Warning Unhealthy 3s (x8 over 38s) kubelet Liveness probe failed: Get "http://10.244.1.54:8080/index.html": dial tcp 10.244.1.54:8080: connect: connection refused
Normal Killing 3s (x4 over 33s) kubelet Container nginx failed liveness probe, will be restarted
Warning BackOff 3s kubelet Back-off restarting failed container

httpget2  可以看到已经重启了6次

[root@k8s-master1 tangzheng]# kubectl get pod
NAME READY STATUS RESTARTS AGE
httpget 1/1 Running 0 28m
httpget2 1/1 Running 6 3m8s

pod资源的健康检查-liveness探针的httpGet使用的更多相关文章

  1. pod资源的健康检查-liveness探针的exec使用

    使用探针的方式对pod资源健康检查 探针的种类 livenessProbe:健康状态检查,周期性检查服务是否存活,检查结果失败,将重启容器 readinessProbe:可用性检查,周期性检查服务是否 ...

  2. pod资源的健康检查-readiness探针的httpGet使用

    livenessProbe:健康状态检查,周期性检查服务是否存活,检查结果失败,将重启容器 readinessProbe:可用性检查,周期性检查服务是否可用,不可用将从service的endpoint ...

  3. 2.k8s.Pod生命周期,健康检查

    #Pod生命周期,健康检查 pod创建过程 Init容器 就绪探测 存活探测 生命周期钩子 #Pod创建过程 master节点:kubectl -> kube-api -> kubenle ...

  4. pod健康检查(liveness probe存活探针&&readiness probe 可读性探针)

    在Kubernetes集群当中,我们可以通过配置liveness probe(存活探针)和readiness probe(可读性探针)来影响容器的生存周期.参考文档:https://kubernete ...

  5. Openshift中Pod的SpringBoot2健康检查

    Openshift中Pod的SpringBoot2应用程序健康检查 1. 准备测试的SpringBoot工程, 需要Java 8 JDK or greater and Maven 3.3.x or g ...

  6. Kubernetes中Pod的健康检查

    本文介绍 Pod 中容器健康检查相关的内容.配置方法以及实验测试,实验环境为 Kubernetes 1.11,搭建方法参考kubeadm安装kubernetes V1.11.1 集群 0. 什么是 C ...

  7. idou老师教你学Istio 14:如何用K8S对Istio Service进行流量健康检查

    Istio利用k8s的探针对service进行流量健康检查,有两种探针可供选择,分别是liveness和readiness: liveness探针用来侦测什么时候需要重启容器.比如说当liveness ...

  8. 十一、Pod的健康检查-探针

    Pod 的健康检查-探针 一.Pod 的健康检查-探针 1.1.探针基本概念 ​探针是由 kubelet 对容器执行的定期诊断.要执行诊断,kubelet 调用由容器实现的 Handler 有三种类型 ...

  9. kubernetes之pod健康检查

    目录 kubernetes之pod健康检查 1.概述和分类 2.LivenessProbe探针(存活性探测) 3.ReadinessProbe探针(就绪型探测) 4.探针的实现方式 4.1.ExecA ...

随机推荐

  1. 【spring源码系列】之【FactoryBean类型的接口】

    1.概述 目前我们知道,spring创建bean有多种方式,比如xml方式创建,比如@Component,@Service,@Controler,@Repository注解创建,比如@Autowire ...

  2. 一文澄清网上对 ConcurrentHashMap 的一个流传甚广的误解!

    大家好,我是坤哥 上周我在极客时间某个课程看到某个讲师在讨论 ConcurrentHashMap(以下简称 CHM)是强一致性还是弱一致性时,提到这么一段话 这个解释网上也是流传甚广,那么到底对不对呢 ...

  3. ExtJS 布局-Anchor 布局(Anchor layout)

    更新记录: 2022年5月30日 发布本篇 1.说明 anchor布局类似auto布局从上到下进行堆叠,但不同的是其可以指定每个元素相对于容器大小的比例. 当调整父容器大小,容器根据指定的规则调整所有 ...

  4. 1.设计模式第一步-《设计模式从头到脚舔一遍-使用C#实现》

    更新记录: 完成第一次编辑:2022年4月23日20:29:33. 加入小黄人歌曲:2022年4月23日21:45:36. 1.1 设计模式(Design Pattern)是什么 设计模式是理论.是前 ...

  5. Visual Studio 2010 ~ 2022 全系列密钥

    更新记录 2022年6月10日 修改序列号顺序. Visual Studio 2022 Professional(专业版): TD244-P4NB7-YQ6XK-Y8MMM-YWV2J Enterpr ...

  6. JAVA面向对象之封装和调用

    一   面向对象 面向对象的三大特性   1 封装:概念:封装是把过程和数据私有化,打包封存起来,对数据访问只能通过指定的方式.简单的可以理解为你把钱存到银行里,银行专员首先要给你开一个账户,之后你的 ...

  7. 抓到 Netty 一个隐藏很深的内存泄露 Bug | 详解 Recycler 对象池的精妙设计与实现

    欢迎关注公众号:bin的技术小屋,如果大家在看文章的时候发现图片加载不了,可以到公众号查看原文 本系列Netty源码解析文章基于 4.1.56.Final版本 最近在 Review Netty 代码的 ...

  8. Windows下通过dos来编译c语言源代码文件

    笔者阅览过网上许多的推荐,基本上都是推荐cl命令,但是因为笔者是通过dev c++入门的,不想放弃dev所以就强行使用dev来实现在dos下的编译以及运行 编译 注意:这边涉及到环境变量的配置,环境变 ...

  9. Linux 启动流程及相关知识

    基础知识 linux系统的组成 内核(kerner) 根文件系统(rootfs) 内核提供操作系统的功能,根文件系统包含常用的一些工具,这些工具.这些工具的运行离不开glibc库文件. 程序:二进制程 ...

  10. 华为交换机设置ntp时间同步

    操作交换机型号:Huawei S5720 查看时间发现时间不对 [HUAWEI]display clock 2021-04-01 21:41:35 Thursday Time Zone(Default ...