自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1878)
  • 收藏
  • 关注

原创 JVM 堆内存分配过程

JVM 在进行 GC 时,并非每次都对堆内存(新生代、老年代;方法区)区域一起回收的,大部分时候回收的都是指新生代。针对 HotSpot VM 的实现,它里面的 GC 按照回收区域又分为两大类:部分收集(Partial GC),整堆收集(Full GC)部分收集:不是完整收集整个 Java 堆的垃圾收集。其中又分为:新生代收集(Minor GC/Young GC):只是新生代的垃圾收集老年代收集(Major GC/Old GC):只是老年代的垃圾收集。

2024-07-08 11:23:34 2201

原创 Prometheus 针对k8s的cadvisor监控指标

cAdvisor是Google开源的容器资源监控和性能分析工具,它是专门为容器而生,在Kubernetes中,我们不需要单独去安装。

2024-07-05 14:45:55 1663

原创 JVM 堆内存结构 年轻代 老年代

在新生代中经历了多次(具体看虚拟机配置的阀值)GC后仍然存活下来的对象会进入老年代中。老年代中的对象生命周期较长,存活率比较高,在老年代中进行GC的频率相对而言较低,而且回收的速度也比较慢。旧的一代内存包含那些经过许多轮小型 GC 后仍然存活的对象通常,垃圾收集是在老年代内存满时执行的。老年代垃圾收集称为 主GC(Major GC),通常需要更长的时间。大对象直接进入老年代(大对象是指需要大量连续内存空间的对象)。

2024-07-04 20:57:07 1747

原创 Prometheus 监控Kubelet的运行状态

kubelet通过/metrics暴露自身的指标数据。kubelet有两个端口都提供了这个url,一个是安全端口(10250),一个是非安全端口(10255,kubeadm安装的集群该端口是关闭的)。安全端口使用https协议,而且还需要认证与授权,所以我们通过浏览器直接访问会返回401 Unauthorized。有两种方法可以在浏览器访问到这个Url:一个是开启kubelet的非安全端口;。比如,我们一个集群有两个节点我们可以通过以下两种方式,在浏览器中都可以访问到peng02的kubelet指标。

2024-07-04 19:08:49 2125 1

原创 Kuberrnetes ServiceAccounts 及其 Secrets 的重大变化

kubernetes v1.24.0 更新之后进行创建 ServiceAccount 不会自动生成 Secret 需要对其手动创建。

2024-07-03 16:39:44 1087

原创 HTTP 协议中的数据压缩 Accept-Encoding Content-Encoding

是提高 Web 站点性能的一种重要手段。对于有些文件来说,高达 70% 的压缩比率可以大大减低对于带宽的需求。随着时间的推移,压缩算法的效率也越来越高,同时也有新的压缩算法被发明出来,应用在客户端与服务器端。在实际应用时,web 开发者不需要亲手实现压缩机制,浏览器及服务器都已经将其实现了,不过他们需要确保在服务器端进行了合理的配置。

2024-06-19 17:54:16 2398

原创 HTTP 常见的报文头部信息

HTTP 首部字段根据实际用途被分为以下 4 种类型。

2024-06-19 16:20:33 2089

原创 Kubernetes 服务部署最佳实践(一)

request 的值并不是指给容器实际分配的资源大小,它仅仅是给调度器看的,调度器会 "观察" 每个节点可以用于分配的资源有多少,也知道每个节点已经被分配了多少资源。被分配资源的大小就是节点上所有 Pod 中定义的容器 request 之和,它可以计算出节点剩余多少资源可以被分配(可分配资源减去已分配的 request 之和)。如果发现节点剩余可分配资源大小比当前要被调度的 Pod 的 reuqest 还小,那么就不会考虑调度到这个节点,反之,才可能调度。所以,如果不配置 request,那么调度器就不能知

2024-06-15 10:38:16 2223

原创 Kubrnetes APIServe 详细大盘指标监控

kube-apiserver组件提供了Kubernetes的RESTful API接口,使得外部客户端、集群内的其他组件可以与ACK集群交互。本文介绍kube-apiserver组件的监控指标清单、大盘使用指导以及常见指标异常解析。指标是组件对外透出状态和参数的方式之一。kube-apiserver组件使用的指标清单如下。Histogram该指标用于统计API Server客户端对API Server不同请求的访问时延分布。

2024-06-14 15:22:14 2273

原创 kube-proxy 中使用ipvs与iptables的比较

这种模式同样有效,IPVS 的设计就是用来为大量服务进行负载均衡的,它有一套优化过的 API,使用优化的查找算法,而不是简单的从列表中查找规则。这意味着,与 iptables 模式下的 kube-proxy 相比,IPVS 模式下的 kube-proxy 重定向通信的延迟要短,并且在同步代理规则时具有更好的性能。kube-proxy 使用的是一种 O(n) 算法,其中的 n 随集群规模同步增长,所以这里的集群规模越大,更明确的说就是服务和后端 Pod 的数量越大,查询的时间就会越长。

2024-06-04 15:53:44 2653

原创 prometheus 标签选择器 正则表达式 = 、=~

示例:”metric_name(label_name=~"^label_value.*} 这个示例将匹配以"label_value"开头的所有标签值。示例:”metric_name(label_name=~".*label_value$" 这个示例将匹配以“label_value”结尾的所有标签值。示例:”metric_name(label_name=~".*label_value.}这个示例将匹配包含"label_value"的所有标签值。~来执行正则表达式匹配操作。~用于执行正则表达式匹配。

2024-05-30 10:14:07 2906

原创 典型的 HTTP 会话

从 HTTP/1.1 开始,连接在完成第三阶段后不再关闭,客户端可以再次发起新的请求。这意味着第二步和第三步可以连续进行数次。

2024-05-27 16:06:01 2326

原创 HTTP 重定向 状态码3xx

http状态码301代表永久重定向。当服务器收到客户端的请求时,会将其重定向到另一个url,而不是返回请求的资源。通常用于以下情况:1、当网站的url结构发生变化或网站迁移到新的域名时。2、当网站上存在重复内容时,可以使用301状态码将所有重复的url重定向到一个主要的url。3、当网站的某个页面不再存在时,可以使用301状态码将该页面的url重定向到一个现有的页面等等。(也称为URL 转发是一种为页面、表单或者整个 Web 站点/应用提供多个 URL 地址的技术。

2024-05-24 14:55:09 2691

原创 HTTP 选择 www 或非 www URL

在一个 HTTP 网址中,在开头http://或https://后的第一个子字符串称为域名。该域名被托管到了文档所在的服务器。一个服务器不一定是一个独立的物理机:几个服务可以驻留在同一台物理机器上。此外,一个服务器可以通过多台机器进行处理,协作处理响应或平衡它们之间的请求负载。重点在于,从语义上去理解,一个域名代表一个单独的服务器。

2024-05-20 18:57:44 2373

原创 Kubernetes 故障篇 service端口不通排查流程

官方提供的yaml文件中,ip识别策略(IPDETECTMETHOD)没有配置,即默认为first-found,这会导致一个网络异常的ip作为nodeIP被注册,从而影响node-to-node mesh。我们可以修改成can-reach或者interface的策略,尝试连接某一个Ready的node的IP,以此选择出正确的IP。以前遇到过,开发这边将jar包定义的端口全部修改了,与我yml文件中定义的不一致,当前环境service端口配置正确。思路三:kube-proxy组件是否正常工作?

2024-05-20 17:32:54 2508

原创 k8s的service为什么不能ping通?——所有的service都不能ping通吗

前提:kube-proxy使用iptables模式。

2024-05-20 16:38:58 2643 1

原创 find 几招在 Linux 中高效地查找目录

在 Linux 操作系统中,查找目录是一项常见的任务。无论是系统管理员还是普通用户,都可能需要查找特定的目录以执行各种操作,如导航文件系统、备份数据、删除文件等。Linux 提供了多种命令和工具来帮助我们在文件系统中快速找到目标目录。本文将介绍几种常用的方法和命令,帮助你在 Linux 中高效地查找目录。

2024-05-20 10:06:20 2870

原创 HTTP content-type MIME 类型(IANA 媒体类型)

Content-Type(MediaType),即是Internet Media Type,互联网媒体类型,也叫做MIME类型。在互联网中有成百上千中不同的数据类型,HTTP在传输数据对象时会为他们打上称为MIME的数据格式标签,用于区分数据类型。最初MIME是用于电子邮件系统的,后来HTTP也采用了这一方案。(也通常称为或类型)是一种标准,用来表示文档、文件或一组数据的性质和格式。在HTTP协议消息头中,使用Content-Type来表示请求和响应中的媒体类型信息。

2024-05-18 10:40:43 3071

原创 nginx proxy_set_header详解

当 Nginx 位于负载均衡器或 CDN 后面时,后端服务器看到的客户端 IP 可能是负载均衡器或 CDN 节点的 IP,而不是真实用户的 IP。确保你了解每个设置的安全影响,并遵循最佳实践来保护你的应用程序和数据。时,请确保你的设置与后端服务器的期望相匹配,并进行充分的测试以确保一切按预期工作。主要用于添加或修改头信息,但你也可以通过将其设置为空值来删除不需要的头。你可以通过修改或添加特定的头来控制后端服务器或中间缓存的行为。头的内容,并附加上客户端的 IP 地址。变量的值设置不同的头。

2024-05-16 15:02:24 3637

原创 Prometheus 保留或删除标签 labeldrop、labelkeep

(要监控k8s集群,可能监控的资源相当大,一个普罗米修斯压力可能非常大,这样可以将抓取的目标做个拆分的,相当于做个分片的,那么可以让其中一个普罗米修斯抓取一部分,另外一个普罗米修斯抓取另外一部分。的主要场景是将一个服务的整体目标进行分片,用于水平扩展 Prometheus,通过首先根据每个目标的一个或多个标签计算基于哈希的模数来实现的,然后只保留具有特定输出模数值的目标。有的时候我们也有保留或删除一些标签的需求,比如有的目标在时间序列上提供了许多额外的标签,这些标签用途不大,这个时候我们就可以使用。

2024-05-15 13:40:12 2621

原创 Prometheus 服务发现 添加标签

中添加标签可以采用Relabel Config的方式,通过在配置文件中编写relabel_config模块来定义要给哪些目标添加标签,该模块可以实现筛选、替换、修剪、添加等不同的转换操作。已经加载了新的配置文件。

2024-05-14 18:34:31 2103

原创 Prometheus 监控外部Kubernetes 集群

前面我们的文章中都是将 Prometheus 安装在 Kubernetes 集群中来采集数据,但是在实际环境中很多企业是将 Prometheus 单独部署在集群外部的,甚至直接监控多个 Kubernetes 集群,虽然不推荐这样去做,因为 Prometheus 采集的数据量太大,或大量消耗资源,如果我们对集群内部的 Prometheus 自动发现 Kubernetes 的数据比较熟悉的话,那么监控外部集群的原理也是一样的,替换成你 Prometheus 所在的节点能访问到的 APIServer 地址。

2024-05-14 11:35:36 1986

原创 Vue 局部布局 Layout 内部布局 [el-row]、[el-col]

之前的布局容器是一个整体的框架,layout里面的布局其实就是el-row和el-col的组合。

2024-05-13 21:04:39 2610

原创 Jenkins 备份恢复插件 ThinBackup

在部署完 Jenkins 后首先要准备的就是数据备份问题,尤其是在生产环境下的 Jenkins,如果数据丢失很可能导致项目上线和开发时间受到影响,所以备份数据很重要。还好,Jnekins 中存在数据备份插件 ThinBackup,方便我们通过界面化方式对数据进行备份与恢复。

2024-05-11 10:52:48 2688 1

原创 Docker nsenter 命令使用

有些时候容器里面要做一些debug,缺一些工具,可以登入到主机上面进入到容器的namespace里面去看其网络配置,看其端口监听。$ nsenter --target 上面查到的进程id --mount --uts --ipc --net --pid。容器看到的是可以通过在主机上面nsenter看到的。* –user参数是进入到user namespace中 (用户和用户组)* –pid参数是进入到pid namespace中 (进程编号)查看容器对应宿主机上面的pid,容器技术的实质是进程,

2024-05-09 14:32:41 1996

原创 Docker 释放空间 docker system prune -a

docker system prune -a 是一个Docker命令,用于清理Docker系统中未使用的镜像、容器、网络和数据卷等资源。这个命令会删除所有未被使用的资源,包括未被使用的...

2024-05-08 14:41:54 1362

原创 linux df -h 命令卡住 解决方法

1、首先就是使用strace去追踪到底在哪里卡住了。用 df -h 查看磁盘情况,无奈卡住无法显示。2、如果没有strace命令则进行安装即可。3、显示出卡住的地方。

2024-05-08 13:56:41 1252

原创 Redis exporter redis监控

版本从有了很大的改变:为了使redis_exporter更紧密地遵循“编写导出器的最佳实践”,但如果已经按照Prometheus项目的推荐使用了导出器,并且仅scrape了一个实例(例如使用--redis.addr和--redis.password 标志),那么没有任何改变。

2024-05-08 10:23:44 2568

原创 Prometheus Metrics指标类型 Histogram、Summary 统计和分析样本的分布情况

除了Counter和Gauge类型的监控指标以外,Prometheus 还定义了Histogram和Summary的指标类型。Histogram和Summary主用用于统计和分析样本的分布情况。在大多数情况下人们都倾向于使用某些量化指标的平均值。

2024-05-06 17:08:30 2216

原创 kubectl top用法

kubectl top命令是Kubernetes的一个子命令,用于查看集群中各个资源对象的CPU和内存使用情况。通过kubectl top命令,我们可以实时监控集群中各个Pod、Node资源对象的资源消耗情况,从而进行性能调优和资源管理。

2024-04-30 15:28:30 1198

原创 Kubernetes 弃用Docker后 Kubelet切换到Containerd

如果你使用了云服务商提供的托管 Kubernetes 服务,那你不用担心,像 GKE、AKS 等云服务商都已经在新版集群中把默认的运行时切换到 containerd。Kubernetes 从 v1.20 开始弃用 Docker,并推荐用户切换到基于容器运行时接口(CRI)的容器引擎,如 containerd、cri-o 等。可以发现,容器运行时已经切换到了 containerd,其版本为 1.4.3。那对于那些自管的集群,又如何把容器运行时从 Docker 切换到 Containerd 呢?

2024-04-30 10:27:31 1455 2

原创 Kubelet containerd 管理命令 ctr常用操作

导入可能会出现类似于 ctr: content digest sha256:xxxxxx not found 的错误,要解决这个办法需要 pull 所有平台镜像。--all-platforms:所有平台(amd64 、arm、386 、ppc64le 等),不加的话下载当前平台架构。把已下载的容器镜像挂载至当前文件系统,是为了方便查看镜像中包含的内容。同时导出可以使用--platform导出其它平台的(例如arm)--all-platforms为导出所有平台。-q 只打印镜像名称。

2024-04-30 09:58:12 1528

原创 Prometheus Metrics指标类型 Gauge(仪表盘)

指标是用来衡量性能、消耗、效率和许多其他软件属性随时间的变化趋势。它们允许工程师通过警报和仪表盘来监控一系列测量值的演变(如CPU或内存或磁盘使用量请求持续时间、延迟等指标在IT监控领域有着悠久的历史,并被工程师广泛使用,与日志和链路追踪一起被用来检测系统是否有不符合预期的表现。Prometheus收集的指标有四种,作为其暴露格式的一部分CountersGaugesHistogramsSummaries。

2024-04-26 15:37:52 1677

原创 Nginx 配置 SSL(HTTPS)详解

Nginx作为一款高性能的HTTP和反向代理,自然支持SSL/TLS加密通信。本文将详细介绍如何在Nginx中配置SSL,实现HTTPS的访问。随着互联网安全性的日益重要,HTTPS协议逐渐成为网站加密通信的标配。Nginx作为一款高性能的HTTP和反向代理服务器,自然支持SSL/TLS加密通信。本文将详细介绍如何在Nginx中配置SSL,实现HTTPS的访问。使用Nginx进行反向代理的时候,对于正常的http;流量使用location块并且配置proxy_pass。

2024-04-25 16:44:33 13625 4

原创 Dockerfile 构建上下文 build -f 选项 加快构建速度

docker build -f docker/Dockerfile -t 镜像名字(给镜像起一个名字):v1.1.1。docker本身会将工作目录里面所有的文件都上传给docker daemon,在这个基础之上再去构建容器镜像。如果 Dockerfile 文件就叫。可以通过.dockerignore文件从编译上下文排除某些文件。那么文件名可省略,如果 Dockerfile 文件就在当前目录下,那么。在上面的例子中,你的 Dockerfile 在。命令接收的参数中,提供给。

2024-04-25 11:11:37 960 1

原创 JavaScript 数学对象 Math

Math对象其实就是数学对象,它给我们提供了各种各样的数学功能。随机生成min到max之间的数。

2024-04-24 21:04:39 290 4

原创 linux scp 免密传输、ssh免密登陆

演示一下:我本地的虚拟机想往我的云服务器上面发送文件,可以看到,我当前处在root根目录下,我们往里面新建一个aaa.txt的文件,并在里面写入一个Hello World文字;查看云服务器,此时root目录内一个文件也没有接下来,我们使用scp命令,将本地虚拟机的aaa.txt文件上传到云服务器的/root目录内,这里需要输入一下云服务器的密码我们来查看一下云服务内部此时有没有接收到这个文件。

2024-04-24 13:57:39 642

原创 blackbex_exporter 监控指标

它通过使用HTTP、HITPS、DNS、ICR等协议发送请求,然后检查响应的状态码、内容、延迟等指标,并将这些指标报告给Prometheus。- http_status_code:HTTP响应状态码,例如200、404、500等。- http_request_duration_seconds:HTTP请求延迟。- dns_lookup_time_seconde:DNS查询时间。- tcp_connect_time_second:TCP连接时间。blackbex_exporter监控指标。

2024-04-23 16:55:19 407

原创 JavaScript 函数

可以先定义使用函数,再去调用函数,因为在真实执行的时候,它会将函数提升到顶部。函数这里有函数定义和函数调用,函数名称加上小括号这才叫函数调用。return后面不能再去加任何代码,只要return了后面。

2024-04-22 22:24:53 258 1

原创 Prometheus 标签动作|action: labelmap 映射为新标签

做上面这些事情是有两个阶段的,一个是采集之前,一个是采集之后,如果在采集之前重新定义标签没生效,那么可以使用采集之后的标签(因为使用的是k8s的服务发现,不管用的是哪个服务发现,默认带的都是源标签__meta_kubernetes_node_label 比如consul那么就是以consul开头的,用这个匹配的值作为新的标签名字,新的标签名字就可以入库,就会被查询,因为元标签以下划线开头的是不会入库的。这些不同服务发现的标签就是为了新标签的生成,就是为了更加好的标识监控指标,源标签是不会入库的)

2024-04-22 17:33:08 590

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除