【赵渝强老师】K8s中Pod探针的TCPSocketAction

在K8s集群中,当Pod处于运行状态时,kubelet通过使用探针(Probe)对容器的健康状态执行检查和诊断。K8s支持三种不同类型的探针,分别是:livenessProbe(存活探针)、readinessProbe(就绪探针)和startupProbe(启动探针)。不同类型的探针都支持三种方式检查方法,分别是:HTTPGetAction、ExecAction和TCPSocketAction。

下面重点讨论提下探针的TCPSocketAction检查方法。该检查方法是对指定容器的IP地址和端口发起建立TCP Socket的请求。如果Socket连接被成功建立,则诊断被认为是成功的。

视频讲解如下
【赵渝强老师】K8s探针的TCPSocketAction

下面通过一个具体的示例来演示如何使用"TCPSocketAction"方式的探针。

yaml 复制代码
(1)创建tcpsocketaction.yaml文件,输入下面的内容。
apiVersion: v1
kind: Pod
metadata:
  name: liveness-tcp
  labels:
    app: httpd
spec:
  containers:
  - name: liveness-tcp
    image: nginx
    ports:
    - containerPort: 80
    readinessProbe:
      tcpSocket:
        port: 8080
      initialDelaySeconds: 10
      periodSeconds: 5
    livenessProbe:
      tcpSocket:
        port: 8080
      initialDelaySeconds: 10
      periodSeconds: 5

提示:tcpsocketaction.yaml文件创建了一个Pod,并基于Nginx的镜像创建了容器。Nginx提供的服务端口是80。然后配置了两个探针分别是readinessProbe和livenessProbe。这两个探针通过使用TCPSocketAction的方式连接端口8080端口。第一次监测时间为Pod容器启动后的10秒,以后后每隔5秒监测一次。由于探针无法连接容器的8080端口而导致检测失败,所以容器一直重启。

(2)使用"kubeclt apply"命令应用tcpsocketaction.yaml文件。

powershell 复制代码
kubectl apply -f tcpsocketaction.yaml

(3)使用命令"kubectl describe"查看Pod的信息,如下图所示。

powershell 复制代码
kubectl describe pod/liveness-tcp
相关推荐
编码如写诗5 分钟前
【k8s】arm架构从零开始在线/离线部署k8s1.34.5+KubeSphere3.4.1
arm开发·架构·kubernetes
徐子元竟然被占了!!8 分钟前
docker-dockerfile练习
运维·docker·容器
Malone-AI10 分钟前
docker换镜像源(docker desktop)
docker·容器
天涯明月199315 分钟前
微服务架构实战指南:从理论到实践
微服务·云原生·架构
qhqh3102 小时前
k8s的service、ingress controller和ingress
云原生·容器·kubernetes
susu10830189112 小时前
Ubuntu 离线环境 安装 Docker Compose
运维·docker·容器
fengyehongWorld2 小时前
docker compose的使用
运维·docker·容器
宁波阿成4 小时前
OpenClaw Docker 完整部署与排障总文档
运维·docker·ai·容器·openclaw
小二·4 小时前
Go 语言系统编程与云原生开发实战(第34篇)
大数据·云原生·golang
智能工业品检测-奇妙智能4 小时前
docker如何进行离线部署springboot项目
spring boot·docker·容器