失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Kubernetes详解(十七)——Pod存活性探针应用实战

Kubernetes详解(十七)——Pod存活性探针应用实战

时间:2022-09-26 23:44:30

相关推荐

Kubernetes详解(十七)——Pod存活性探针应用实战

今天继续给大家介绍Linux运维相关知识,本文主要内容是Pod存活性探针应用实战。

在上文Kubernetes详解(十六)——Pod容器探测中,我们讲解了Pod容器的探针。今天,我们就来进行以下Pod容器的探针实战。

一、EXEC探针实战

首先,我们进行EXEC的探针实战,创建liveness-probe.yaml的资源配置清单,并写入如下内容:

apiVersion: v1kind: Podmetadata:name: liveness-probenamespace: defaultlabels:probe: livenessspec:containers:- name: liveness-probe-containerimage: busyboximagePullPolicy: IfNotPresentcommand: ["/bin/sh","-c","touch /tmp/healthy;sleep 30;rm -rf /tmp/healthy","sleep 600"]livenessProbe:exec:command: ["test","-e","/tmp/healthy"]initialDelaySeconds: 2periodSeconds: 5

完成后的资源配置清单文件如下所示:

在上述配置中,我们使用了命令的存活性探针,该探针会不断探测/tmp/healthy文件的存在性,如果该文件不存在,探针就会探测处异常。根据我们镜像的command的配置,容器在启动后,运行30秒就会删除该文件,因此该Pod的运行必然会引发探针异常。我们只需要观察探针异常后是否有Pod容器的重启,就可以判定探针是否工作正常。

然后,我们运行该资源清单配置文件,创建Pod容器,执行命令:

kubectl create -f liveness-probe.yaml

Pod容器运行后如下所示:

从上图中可以看出,我们的Pod容器运行成功。接下来,我们等待一段时间,来测试一下探针的作用。

等待一段时间后,Pod容器结果如下:

在上图中可以看出,在pod容器的运行中,随着command命令的作用,探针探测到容器异常,因此Kubernetes会杀死容器并重启。我们的命令探针配置成功!

二、HTTP探针实战

接下来,我们进行HTTP的探针实战,创建http-probe.yaml的资源配置清单,并写入如下内容:

apiVersion: v1kind: Podmetadata:name: http-probenamespace: defaultlabels:probe: httpspec:containers:- name: http-probeimage: nginx:1.12imagePullPolicy: IfNotPresentports:- name: httpcontainerPort: 80lifecycle:postStart:exec:command: ["/bin/bash","-c","echo Http-Probe > /usr/share/nginx/html/ishealth.html"]livenessProbe:httpGet:path: /ishealth.htmlport: httpscheme: HTTP

完成后的资源配置清单文件如下所示:

在上述配置中,我们定义了一个HTTP的探针,该探针会不断探测网站根目录下/ishealth.html文件(该文件由容器中的command命令创建)的存在性,如果该文件不存在,探针就会探测到异常。

我们运行该资源清单配置文件,创建Pod容器,执行命令:

kubectl create -f http-probe.yaml

该容器运行后,我们进入该容器,删除ishealth.html的文件,观察容器状态,结果如下所示:

可以看出,当我们删除容器后,由于探针探测到异常,引发容器的重启。我们的HTTP探针成功!

三、TCP探针实战

最后,我们进行TCP的探针实战,创建tcp-probe.yaml的资源配置清单,并写入如下内容:

apiVersion: v1kind: Podmetadata:name: tcp-probenamespace: defaultlabels:probe: tcpspec:containers:- name: tcp-rpobeimage: nginx:1.12ports:- name: httpcontainerPort: 80livenessProbe:tcpSocket:port: http

完成后的资源配置清单文件如下所示:

在上述配置中,我们的探针会不断探测容器的80端口,如果80端口不通,则探针会探测到异常。

我们运行该资源清单配置文件,创建Pod容器,执行命令:

kubectl create -f tcp-probe.yaml

启动容器。

容器启动后,我们可以执行命令:

kubectl describe pods/tcp-probe

来查看该Pod的TCP探针设置,结果如下所示:

从上图中,也可以看出我们配置的TCP探针的内容。

原创不易,转载请说明出处:/weixin_40228200

如果觉得《Kubernetes详解(十七)——Pod存活性探针应用实战》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。