pod资源的健康检查-liveness探针的httpGet使用
使用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使用的更多相关文章
- pod资源的健康检查-liveness探针的exec使用
使用探针的方式对pod资源健康检查 探针的种类 livenessProbe:健康状态检查,周期性检查服务是否存活,检查结果失败,将重启容器 readinessProbe:可用性检查,周期性检查服务是否 ...
- pod资源的健康检查-readiness探针的httpGet使用
livenessProbe:健康状态检查,周期性检查服务是否存活,检查结果失败,将重启容器 readinessProbe:可用性检查,周期性检查服务是否可用,不可用将从service的endpoint ...
- 2.k8s.Pod生命周期,健康检查
#Pod生命周期,健康检查 pod创建过程 Init容器 就绪探测 存活探测 生命周期钩子 #Pod创建过程 master节点:kubectl -> kube-api -> kubenle ...
- pod健康检查(liveness probe存活探针&&readiness probe 可读性探针)
在Kubernetes集群当中,我们可以通过配置liveness probe(存活探针)和readiness probe(可读性探针)来影响容器的生存周期.参考文档:https://kubernete ...
- Openshift中Pod的SpringBoot2健康检查
Openshift中Pod的SpringBoot2应用程序健康检查 1. 准备测试的SpringBoot工程, 需要Java 8 JDK or greater and Maven 3.3.x or g ...
- Kubernetes中Pod的健康检查
本文介绍 Pod 中容器健康检查相关的内容.配置方法以及实验测试,实验环境为 Kubernetes 1.11,搭建方法参考kubeadm安装kubernetes V1.11.1 集群 0. 什么是 C ...
- idou老师教你学Istio 14:如何用K8S对Istio Service进行流量健康检查
Istio利用k8s的探针对service进行流量健康检查,有两种探针可供选择,分别是liveness和readiness: liveness探针用来侦测什么时候需要重启容器.比如说当liveness ...
- 十一、Pod的健康检查-探针
Pod 的健康检查-探针 一.Pod 的健康检查-探针 1.1.探针基本概念 探针是由 kubelet 对容器执行的定期诊断.要执行诊断,kubelet 调用由容器实现的 Handler 有三种类型 ...
- kubernetes之pod健康检查
目录 kubernetes之pod健康检查 1.概述和分类 2.LivenessProbe探针(存活性探测) 3.ReadinessProbe探针(就绪型探测) 4.探针的实现方式 4.1.ExecA ...
随机推荐
- Spring Boot 实践 :Spring Boot + MyBatis
Spring Boot 实践系列,Spring Boot + MyBatis . 目的 将 MyBatis 与 Spring Boot 应用程序一起使用来访问数据库. 本次使用的Library spr ...
- 【Github】 Github修改仓库的基本信息
前言 我们通常在刚开始了解学习使用github时,一般都是测试的使用,有时我们向里面添加了一些代买,如果想要修改信息并且是删除仓库重新创建提交,可以采用下面方法修改仓库信息,名称.描述等. 修改仓库描 ...
- python基础知识-day9(库学习)
1.os学习 1 print(os.name) #获取操作系统 2 print(os.path.exists("D:\soft\python")) #判断路径是否存在 3 prin ...
- SAP 文本框多行输入
REPORT zjw_test01. CONSTANTS: gc_text_line_length TYPE i VALUE 72. TYPES: text_table_type(gc_text_li ...
- DotNET程序员面向API编程的正确姿势
原文:https://blog.csdn.net/u013201439/article/details/49981071 补充:按照步骤成功加载文档后,选择索引可以快速发现相关的内容,如图
- Linux文件的通配符
通配符的作用:匹配文件名 常见的通配符: *:表示任意个字符(不包括隐藏文件) ?:单个任意字符(中文也算一个字符) []:表示匹配一范围或者其中一个 表示匹配范围: [a-z] --- 不但包括了小 ...
- weiphp 插件"通用表单"BUG修改
修改文件目录 在类FormsValueController 中添加函数 // 匹配函数 //$value:字符串 //$validate_rule:正则规则 // return true:比配成功,f ...
- python实现人脸关键部位检测(附源码)
人脸特征提取 本文主要使用dlib库中的人脸特征识别功能. dlib库使用68个特征点标注出人脸特征,通过对应序列的特征点,获得对应的脸部特征.下图展示了68个特征点.比如我们要提 取眼睛特征,获取3 ...
- Java:如何打印整个字符串数组?
例: public static void main(String[] args) { String prodName = "雇员姓名,雇员唯一号"; String[] prodN ...
- idea控制台不能输入问题
idea控制台不能输入问题 在idea中,使用JUnit测试时,不能在控制台输入,进行下面的设置即可 第一步 :help---> Edit Custom VM Options... 第二步:添加 ...