一个pod有多少个端口? 1个pon口实际能跑多少上行?
原标题:一个pod有多少个端口? 1个pon口实际能跑多少上行?
导读:
通过Prometheus-Operator实现对k8s集群的监控特此说明:本篇时基于prometheus-operator官网提供的kube-prometheus原生包进行部...
通过Prometheus-Operator实现对k8s集群的监控
特此说明:本篇时基于prometheus-operator官网提供的kube-prometheus原生包进行部署的,由于我的k8s集群为10版本,考虑到对原生的兼容性,发现官方从release-0.5已经开始支持k8s18了,但是在实际使用中我使用的最新版本安装包并没有报错。
Prometheus-Operator 是一个用于简化 kubernetes 中 Prometheus 监控的解决方案,它提供自动部署、管理和配置服务。通过 ServiceMonitor,用户无需底层配置即可实现对K8s应用的自动监控。本文将详细介绍它的使用方法和关键组件。
为了实现prometheus监控k8s内的应用,prometheus-operator通过servicemonitor配置与服务对象关联,通过Podmonitor与POD组关联。servicemonitor对象解耦了监控需求与实现方式,仅需使用label-selector声明监控需求,无需过多关注具体的实现细节。最终,operator会将这些需求转化为原始的复杂scrape配置。
在k8s中,使用Prometheus进行监控,并通过Grafana实现大屏展示和监控报警的步骤如下:Prometheus监控配置与管理:登录Prometheus系统。点击“Status”下的“Rules”菜单,查看和管理监控项。若需修改监控项,在默认监控项目目录中进行,并通过命令行重新加载配置。
K8S之nodePort、port、targetPort和containerport
1、tarGetPort是针对docker容器设置的端口。当数据从NodePort或port进入时,kube-proxy将数据路由至后端pod的targetPort上,最终进入容器内部。值得注意的是,targetPort与containERPort必须保持一致。containerPort则是定义在pod控制器中的端口,用于容器需要暴露给外界的接口。
2、RockerMQ在k8s的部署有两种方式, 一种是使用operator 在k8s集群中部署,可参考 operation项目 ; 一种是编写简单的k8s配置文件,在rocketmq的docker项目中有提供模板。
3、我们使用的service type是NodePort,yaml里没有申明nodePort 所以k8s会默认创建一个nodePort (30000-40000),然后我们通过node ip 加 nodePort 就可以访问service。
4、kube-proxy通过配置DNAT规则,将到达服务地址的访问映射到本地的kube-proxy端口上。然后,它监听本地对应端口,将访问代理到远程真实的Pod地址。无论通过集群内部服务入口:port还是集群外部服务入口:nodePort的请求,都将重定向到本地kube-proxy端口(随机端口)的映射,然后代理到远端真实的Pod地址。
Pod健康检查介绍
Pod健康检查是Kubernetes生态系统中确保容器健康运行的关键机制,主要包括存活探测和就绪探测。 存活探测: 目的:监控容器内部应用程序的健康状态,确保应用程序在异常情况下能被及时重启。 实现方式: 命令执行:通过执行容器内部的自定义命令,判断应用程序的健康状态。
在Kubernetes的生态系统中,Pod健康检查机制是确保容器健康运行的关键。默认情况下,kubelet依据容器运行状态来判断健康,但这不足以监控容器内部应用程序的健康状况,比如程序假死。由此引入了健康检查机制,它通过存活探测(livenessProbe)和就绪探测(readinessProbe)来监控容器的健康状态。
通过容器的IP地址和端口号执行TCP检查,如果能够建立TCP连接,则表明容器 健康 。 资源文件定义 访问8080端口,但是8080端口未开放,所以访问会超时,不能建立连接,命中检测,重启Pod 用于判断容器服务是否可用(Ready状态) ,达到Ready状态的Pod才可以接收请求。