k8s实验-健康检查

网友投稿 315 2022-09-09

k8s实验-健康检查

健康检查

使用存活探针

1 创建文件

mkdir -p ~/huawei_k8s/labfile/probefilecd ~/huawei_k8s/labfile/probefile

2 创建使用execaction模式的存活探针pod文件liveness-exec.yaml

apiVersion: v1kind: Podmetadata: labels: test: liveness name: liveness-execspec: containers: - name: liveness args: - /bin/sh - -c - touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600 image: busybox livenessProbe: exec: command: - cat - /tmp/healthy initialDelaySeconds: 5 perioSeconds: 5

3 创建pod

kubectl apply -f liveness-exec.yaml

4  使用kubectl get pod -w 监控pod状态,可以看到pod反复重启

kubectl get pod -w

5 查看pod详细信息

kubectl describe pod liveness-exec

确认反复重启,通过event项,确认探针工作流程

6 创建使用liveness-v1kind : Podmetadata: labels: test: liveness name: liveness- containers: - name: liveness image: mirrorgooglecontainers/liveness args: - /server livenessProbe: path: /healthz port: 8080 - name: X-Custom-Header value: Awesome initialDelaySeconds: 3 perioSeconds: 3

7 创建该pod

8 观察pod的变化

kubectl get pod -w

9 查看events

kubectl describe pod liveness-创建使用tcp存活探针的pod的yaml,模板采用liveness-tcp.yamlapiVersion: v1kind: Podmetadata: name: liveness-tcp labels: app: containers: - name: image: livenessProbe: tcpSocket: port: 80 initialDelaySeconds: 10 periodSeconds: 10

11 创建pod,等待完成

12 进入容器内部,修改提供服务的端口,从默认的80修改为8080,并重启容器内部的exec -it liveness-tcp /bin/bashsed -i "52c listen 8080" /usr/local/apache2/conf/-i "241c ServerName localhost:8080" /usr/local/apache2/conf/-k restartexit

13 等待一段时间后,可以看到pod的restarts次数变成了,由于未通过存活探针检测,pod进行了重启,因此业务又恢复正常,并且端口也恢复到了默认的80端口

kubectl get pod

14 使用describe命令查看pod之前未通过liveness的记录

kubectl describe pod

使用readliness探针

1 创建apps/v1kind: Deploymentmetadata: name: replicas: 3 selector: matchLabels: app: template: metadata: labels: app: spec: containers: - name: image: ports: - containerPort: 80 readinessProbe: exec: command: - cat - /usr/local/apache2/htdocs/index.html initialDelaySeconds: 5 periodSeconds: 5

2 创建deloyment

3 创建v1kind: Servicemetadata: name: selector: app: ports: - protocol: TCP port: 8080 targetPort: 80

4创建 service

kubectl apply -f 查看服务endpoint

kubectl describe service 进入一个容器,删除/usr/local/apache2/htdocs/index.html文件

kubectl exec -it /bin/shrm /usr/local/apache2/htdocs/index.html

7 使用descibe命令查看endpoint,可以看到pod地址已经从endpoint中移除

kubectl describe service 查看pod的详细信息,可以看到pod未通过探针检测

9 查看pod信息,可以看到pod处于notready状态

kubectl get pod

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:grafana可视化配置图表bar chart
下一篇:广告文案:高考前,蒙牛先鬼畜了!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~