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

简介: 在K8s集群中,kubelet通过探针(如livenessProbe、readinessProbe和startupProbe)检查容器健康状态。探针支持HTTPGetAction、ExecAction和TCPSocketAction三种检查方法。本文重点介绍TCPSocketAction,它通过尝试建立TCP连接来检测容器的健康状况。示例中创建了一个Nginx Pod,并配置了两个探针(readinessProbe和livenessProbe),它们每隔5秒检查一次容器的8080端口,首次检查在启动后10秒进行。若连接失败,容器将重启。视频讲解和命令演示进一步详细说明了这一过程。

b190.png

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


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


视频讲解如下:


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


(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文件。

kubectl apply -f tcpsocketaction.yaml


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

kubectl describe pod/liveness-tcp


image.png

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
数据安全/隐私保护
xshell7,xftp7个人免费版官方下载,无需破解,免激活,下载即可使用
xshell7,xftp7个人免费版官方下载,无需破解,免激活,下载即可使用
18388 0
|
Kubernetes 网络协议 Shell
【赵渝强老师】K8s中Pod探针的ExecAction
在K8s集群中,kubelet通过三种探针(存活、就绪、启动)检查容器健康状态,支持HTTPGet、Exec和TCP检查方式。本文重点介绍ExecAction探针,通过在容器内执行Shell命令返回码判断健康状态,并附带视频讲解和实例演示,展示如何配置和使用ExecAction探针进行健康检查。
408 10
【赵渝强老师】K8s中Pod探针的ExecAction
|
缓存 Linux 开发工具
CentOS 7- 配置阿里镜像源
阿里镜像官方地址http://mirrors.aliyun.com/ 1、点击官方提供的相应系统的帮助 :2、查看不同版本的系统操作: 下载源1、安装wget yum install -y wget2、下载CentOS 7的repo文件wget -O /etc/yum.
270434 0
|
消息中间件 存储 Kubernetes
K8S环境快速部署Kafka(K8S外部可访问)
本文通过实战展示了如何在K8S环境部署kafka集群,并且K8S环境外部也能使用此服务
4752 1
K8S环境快速部署Kafka(K8S外部可访问)
|
Kubernetes 容器 Perl
【kubernetes】解决: kubelet Failed to create pod sandbox: rpc error: code = Unknown desc = faile...
【kubernetes】解决: kubelet Failed to create pod sandbox: rpc error: code = Unknown desc = faile...
18247 0
|
9月前
|
Prometheus Kubernetes 监控
Kubernetes(k8s)高可用性集群的构建详细步骤
构建高可用Kubernetes集群涉及到的层面非常广泛,包括硬件资源的配置、网络配置以及集群维护策略的规划。因此,在实际操作中,可能还需要根据特定环境和业务需求进行调整和优化。
2415 19
|
存储 Kubernetes API
k8s学习-ConfigMap(创建、使用、更新、删除等)
k8s学习-ConfigMap(创建、使用、更新、删除等)
4007 0
|
存储 Kubernetes 应用服务中间件
Ingress-Nginx使用指南上篇
关于Ingress-Nginx在Kubernetes中的使用指南,涵盖了从基础安装到高级特性配置的详细步骤和实战案例。
5652 3
Ingress-Nginx使用指南上篇
|
Kubernetes 网络协议 Python
运维开发.Kubernetes探针与应用
运维开发.Kubernetes探针与应用
976 2
|
存储 Kubernetes 安全
Kubernetes 中如何对 etcd 进行备份和还原
Kubernetes 中如何对 etcd 进行备份和还原

热门文章

最新文章