自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 firewall-cmd添加访问规则

若要使用允许网段访问本地的 8088 端口,你可以按照以下步骤操作。

2025-03-28 18:57:57 390

原创 技术博客:Gin框架嵌套数组参数绑定实践

该方案已在生产环境稳定运行,正确处理了K8s多工作负载类型的参数接收需求。在K8s管理平台开发中,我们经常需要处理复杂参数的接收。

2025-03-17 10:29:40 118

原创 Nginx 限流功能:原理、配置与应用

Nginx 的限流功能为我们在应对高并发场景时提供了一种简单而有效的解决方案。通过合理配置和模块,我们可以根据不同的业务需求灵活地实现请求速率限制和连接数限制。在实际应用中,结合具体的业务场景,充分发挥 Nginx 限流功能的优势,能够有效地提升系统的稳定性和可靠性,为用户提供更加优质的服务体验。希望本文能帮助读者深入理解 Nginx 限流功能,并在实际项目中成功应用。

2025-03-11 15:46:04 482

原创 Python的win32com库的简单示例

是一个强大的 Python 库,用于与 Windows COM(Component Object Model,组件对象模型)对象进行交互。

2024-08-13 15:19:35 878

原创 Python中将代码打包成exe文件

注意:PyInstaller会生成一堆文件,包括动态链接库文件(DLLs)、资源文件等。如果你的程序依赖于其他数据文件或者特定的资源,你需要手动将这些文件放置在exe文件相同的文件夹中,或者使用PyInstaller的命令行参数来指定这些额外的文件。在Python中将代码打包成exe文件,可以使用PyInstaller工具。–onefile参数表示把所有的文件打包进一个exe文件中。如果你想要生成一个不包含控制台窗口的exe文件(即GUI程序),可以使用–windowed或者–noconsole参数。

2024-08-12 15:38:22 436

原创 Vben admin Form中的 OnChange

这里以 APiselect组件的 onchange 示例。

2024-07-17 13:45:33 411

原创 DBeaver连接clickhouse数据库无法查看数据库

dbeaver-ce-22.2.2 用 0.5.0 就不行了,换成 0.4.6 就行了。dbeaver-ce-24.1.0 用的 0.5.0。是JDBC驱动原因.

2024-06-11 17:00:38 598

原创 Linux磁盘扩容操作

这些命令将会将新的物理卷添加到卷组中,并将逻辑卷扩展到卷组中所有可用的空间,最后调整文件系统大小以便可以使用新的逻辑卷大小。请根据您的实际情况和需求进行相应调整。逻辑卷扩展到卷组中所有可用的空间。的新物理卷,我们希望将其添加到名为。

2024-05-11 08:36:17 352

原创 通过Admission Webhook限制Namespace下Nodeport Service的端口范围

要注意的是,这个示例仅提供了核心的检查逻辑,你需要根据你的环境配置服务的部署和证书等。同时,你还需要配置MutatingWebhookConfiguration和ValidatingWebhookConfiguration,以便Kubernetes知道如何与你的Webhook通信。在这个示例中,我们定义了一个Webhook,它在Service创建时检查NodePort的值。如果NodePort的值不在30000到32767的范围内,Webhook将拒绝该请求。

2024-04-18 16:23:02 280

原创 使用GO语言验证证书的有效期

定时扫描K8s集群证书的过期时间, exporter 需要运行 daemonset 感觉过于浪费资源, 打算自己用Go下一个工具, 定时在每个节点上都拉起一下, 跑完了就销毁.替换为您要验证的证书文件的路径。代码将读取证书文件,解析证书并检查当前时间是否在证书的有效期内。根据验证结果,将输出相应的结果。在上面的代码中,需要将。

2024-03-26 14:51:45 703 1

原创 Deepflow Agent 自定义配置组

要修改Deepflow Agent 的配置文件。配置组的ID放进去, 同时修改对应的配置。有 deepflow-ctl 工具。后续修改配置使用文件更新即可。修改完毕后创建配置组配置。首先查看配置组的ID。

2024-03-21 16:24:57 472

原创 nginx 中 user 配置的作用

通过指定一个非特权用户来运行 Nginx 进程,可以降低潜在的安全风险。即使在被攻击时,攻击者也只能以指定用户的权限运行恶意代码,而无法获取系统更高权限。用户的身份运行(即使使用 root 用户运行nginx进程, nginx运行过程中线程的用户还是用的。:以非特权用户身份运行 Nginx 进程可以限制其对系统资源的访问权限,减少潜在的系统风险。指令用于指定 Nginx 运行时所使用的用户和用户组。:根据安全最佳实践,建议将服务进程运行在非特权用户下,以减少系统受到攻击的风险。

2024-03-20 09:23:22 1529

原创 Python 分组后携带明细记录

方法应用了一个 lambda 函数,该函数将每个分组的明细记录转换为字典列表,并将其放入一个新的 DataFrame 列中。如果你想在 Pandas 中对分组后的明细记录创建一个列表,并将其放入 DataFrame 中,你可以使用。方法按照 ‘column_to_group_by’ 列进行分组,并使用。方法重置索引并为新的列命名。这样就可以得到包含明细记录列表的分组结果了。在这个示例中,我们使用。

2024-02-02 10:07:52 305 1

原创 Python 字段进行分组和聚合操作

在这个示例中,我们创建了一个包含 ‘group’, ‘category’, ‘value1’ 和 ‘value2’ 四个字段的字典,并将其转换为。除了这些常见的聚合函数外,你还可以使用自定义的函数进行聚合操作。方法对 ‘value1’ 和 ‘value2’ 两个字段分别进行了求和和平均值的聚合操作。方法可以接受一个字典作为参数,字典的键是要进行聚合操作的列名,值是要应用的聚合函数。方法按照 ‘group’ 和 ‘category’ 两个字段进行分组,并使用。要对多个字段进行分组和聚合操作,你可以在。

2024-02-02 09:25:33 561

原创 Python 对Mysql的查询结果进行分组加工

的 DataFrame 中,然后对 DataFrame 进行分组和聚合操作。两个聚合函数对 ‘numeric_column’ 和 ‘other_column’ 两个字段进行了分组和聚合操作。最后,关闭了数据库连接。方法按照 ‘column_to_group_by’ 列进行分组,并应用了。在这个示例中,我们首先建立了到 MySQL 数据库的连接,然后使用。的 DataFrame 中。从数据库中读取数据并将结果存储在。从数据库中读取数据并将结果存储在。当使用 MySQL 时,可以使用。

2024-02-02 09:23:47 396

原创 journalctl日期范围操作

在这个示例中,–since 选项指定了一个时间范围(在这种情况下是“1 hour ago”),以便查看在这段时间内 Docker 服务的日志。选项用于指定时间范围。你可以根据需要调整日期和时间来查看特定时间段内的日志。要查看特定时间段的 Docker 服务日志,你可以使用。选项来限制日志的数量和时间范围。这里以Docker 日志为例。选项来指定服务单元名称(也可以使用相对是想见范围。

2024-01-25 14:31:27 1599

原创 预编译仓库中的 Helm Chart

通过这种方式,你可以在不安装 Chart 的情况下,预览并检查 Chart 生成的 Kubernetes 资源文件。内网部署项目, 没法直接hlem install , 需要提前看看有哪些镜像, 拉到本地看看。如果你有其他关于 Helm 的问题,或者需要更多帮助,请随时告诉我。这将会将下载的 Chart 文件预编译为 Kubernetes manifests。要使用预编译仓库中的 Helm Chart,你可以使用。命令来将 Chart 下载到本地,并使用。命令来预编译该 Chart。

2023-12-29 15:00:21 613

原创 Go 中 for循环内使用协程的变量值脏读问题

如下代码的输出, 我们在 for 循环中,使用了协程(go runtime)。原因:因为这里的v 是一个指针变量, 每次循环都会重新赋值, 再执行每次的。之前,v 的值就被改了, 这里被坑惨了。重新声明一个变量,传给协程。不是预想的 a,b, c 乱序。每个学Go的都要踩的坑。

2023-12-18 16:50:29 774 1

原创 对 K8s 中的 NameSpace的ResourceList进行加减操作

需要将命名空间内新家的STS所使用的配额自动加到NameSpace上, 就需要对NameSpace的ResourceList做加减操作。

2023-12-15 16:39:07 276

原创 将POD的ResourceList转为Namespace格式的ResourceList

k8s client 中 POD的ResourceList 和 NameSpace的ResourceList 格式不一样, 进行配额加减计算的时候需要转换, 因为开发了工具类。入参 req 是POD的 requests的ResourceList,lim 是 limits 的ResourceList。

2023-12-15 16:33:40 120

原创 K8s 的 ResourceList进行加减操作工具类

在Kubernetes Go客户端中,你可以使用一些基本的算术运算符来对ResourceList进行加减操作。ResourceList中的值是以。需要计算STS需要的资源并且扩容NameSpace的resourcequotas。类型表示的,这个类型实际上是一个map,其中key是。你可以通过操作map中的值来进行加减乘除操作。

2023-12-12 13:16:30 942 1

原创 计算修改ResourceQuota

在上面的示例中,我们首先使用 Get 方法获取了现有的ResourceQuota对象,然后修改了CPU和内存的配额,并使用 Update 方法将其更新到Kubernetes集群中。你可以根据自己的需求修改命名空间名称和现有ResourceQuota的名称。希望这个示例能够帮助你开始使用Kubernetes的Client-Go库来在现有的ResourceQuota基础上添加CPU和内存配额。如果你有其他问题或需要更多帮助,请随时告诉我。

2023-12-12 11:23:55 195

原创 K8s Informer 的 Resync 机制

Informer 的 Resync 机制是指在一定时间间隔内强制重新同步(resync)资源对象的机制。这个机制可以帮助应用程序确保本地缓存中的资源对象与实际的 API Server 中的资源对象保持同步,从而减少对 API Server 的请求频率,提高性能和效率。Resync 机制的实现通常涉及两个方面的内容:定时的全量同步:Informer 定期执行全量的列表请求,获取所有资源对象的最新状态,并将其更新到本地缓存中。这样可以确保本地缓存中的资源对象与 API Server 中的资源对象保持同步。

2023-12-11 10:56:26 992

原创 K8s client go 合并informer

在上面的示例中,我们注册了一个统一的事件处理器,用于处理合并的多个资源的事件。在事件处理器中,我们使用类型断言来区分不同资源类型的事件,并进行相应的处理。根据对象的类型或其他标识,你可以在事件处理器中将事件路由到不同的处理逻辑中。当合并多个资源的 Informer 后,你可以注册一个统一的事件处理器来处理所有资源的事件。在事件处理器中,你可以通过类型断言来区分不同资源类型的事件,并进行相应的处理。希望这个示例能够帮助你了解如何处理合并的多个资源的事件。如果你有其他问题,或者需要更多解释,请随时告诉我。

2023-12-11 10:54:54 286

原创 Go查询Elasticsearch

方法将其添加到查询中。这样,我们就可以在查询中同时使用查询条件和过滤条件。这个示例中的过滤条件是一个范围查询,用来过滤出年龄大于等于 18 岁的文档。希望这个示例能够帮助你使用 Go 语言向 Elasticsearch 发送带有过滤条件的分页请求。如果你有其他问题或需要进一步的帮助,请随时告诉我。在 Go 中需要在 Elasticsearch 中执行带有过滤条件的查询时,你可以使用。分别为你的 Elasticsearch 主机地址和索引名称。在这个示例中,我们添加了一个名为。同样,请替换代码中的。

2023-11-27 10:55:58 761 1

原创 K8s client go 创建CRD的informer

convertUnstructuredProject的实现 Project 是实现的 runtime.Object 接口的struct。dynamicClient 是 创建的K8s的client, 这里使用的是 Unstructured 接収的CRD的结果,需要监听K8s中CRD资源的变动, 做出相应的处理, 需要针对 CRD资源建立informer。加工了一下, convertUnstructuredProject 实现下面提供。

2023-11-23 08:49:14 1105 1

原创 多参数训练Isolation Forest

在这个示例中,我们首先将数据集中的 ‘x’ 和 ‘y’ 两个指标合并成一个特征向量 ‘xy’,然后将标签 ‘label’ 转换成 -1 和 1。接着,我们使用 Isolation Forest 模型对数据进行训练,并使用训练好的模型对一个新的数据点进行预测。如果你要使用两个指标作为入参训练 Isolation Forest 模型,你需要将这两个指标合并成一个特征向量,然后将这个特征向量作为模型的输入。具体来说,你需要将每个数据点的两个指标组合成一个二元组,然后将这些二元组组成一个矩阵,作为模型的输入数据。

2023-11-20 14:31:11 168

原创 请求prometheus数据然后使用tensorflow计算正则模型

使用tensorflow 计算正则模型, 数据来源为Prometheus的数据近7天的数据, 然后计算了90%区间的上下限和当前值的概率密度。

2023-11-17 17:24:56 419

原创 使用python计算K8s的内存和CPU配额

【代码】使用python计算K8s的内存和CPU配额。

2023-10-26 17:41:58 273

原创 Linux TCP链接查看和调整

Linux系统默认情况下会保留一些TCP连接,以便快速重新使用这些连接。但是,如果您的服务器需要处理大量的并发连接,则可能需要调整TCP连接数的设置。请注意,在增加TCP连接数之前,您应该了解服务器的硬件和网络限制,并确保您的设置不会导致服务器过载或性能下降。统计已连接上的,状态为“established”的TCP连接数。统计某个IP地址连接最多的TCP连接数。统计httpd协议连接数。

2023-09-07 10:38:20 1220

原创 gin通过反射来执行动态的方法

在gin中,可以通过反射来执行对应的方法。

2023-07-31 15:46:25 1697

原创 使用Go语言爬取网页并将其保存为图片

库来控制Chrome浏览器的Headless模式。我们首先创建一个新的上下文,然后导航到指定的网页。接着,我们等待页面加载完成,然后使用。要使用Go语言爬取网页并将其保存为图片,你可以使用Go的第三方库来实现。请注意,这只是一个简单的示例,你可能需要根据自己的需求进行更多的定制和错误处理。函数来截取屏幕截图,并将其保存到指定的文件中。记得在运行代码之前,确保已安装了。在这个示例中,我们使用。

2023-07-27 17:17:47 1058

原创 Python 打印网页为图片(基于edge)

首先,如果你还没有安装Edge WebDriver,可以前往此处下载:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/请替换 “YOUR_EDGEDRIVER_PATH” 为你的 Edge WebDriver 可执行文件的实际路径。如果你需要截取这些内容,你可能需要调整窗口的大小或者滚动页面。然后,确保 WebDriver 的可执行文件在你的 PATH 中,或在你的脚本中指定其路径。需要安装 selenium。

2023-07-27 17:16:57 565

原创 python 多线程示例

python 多线程示例。

2023-07-25 15:22:07 261

原创 Go CallPlugin 的使用

Go CallPlugin 使用

2023-07-20 17:07:46 205

原创 python 字典中 get 和 [] 的区别

在Python中,`get`和`[]`是用来访问字典(`dict`)或字典样的对象(例如`defaultdict`)中的元素的两种常见方式。它们有一些区别:

2023-07-20 14:55:23 1246

原创 Kafka日志告警关键字

配置日志告警时,可以使用监控工具或自定义脚本来搜索Kafka日志文件中的关键字,并在发现匹配的关键字时触发告警通知。这样可以及时获得关注的日志信息,并快速响应潜在的问题,确保Kafka的可靠性和稳定性。:表示与Kafka集群的Leader选举相关的操作,如Leader切换、Leader失效等。:表示与Kafka集群的副本同步相关的操作,如副本同步延迟、副本失效等。:表示与消费者的偏移量相关的操作,如偏移量提交失败、偏移量越界等。:表示与Kafka集群的连接相关的操作,如连接失败、连接重试等。

2023-07-19 09:29:58 591

原创 Redis日志告警关键字

配置日志告警时,可以使用监控工具或自定义脚本来搜索日志文件中的关键字,并在发现匹配的关键字时触发告警通知。这样可以及时获得关注的日志信息,并快速响应潜在的问题,确保Redis的可靠性和稳定性。除了上述关键字,您还可以根据实际需求关注其他与您的应用和环境相关的关键字。例如,如果您的应用使用了某些特定的Redis命令或功能,可以关注与这些命令或功能相关的关键字。:表示慢查询相关的操作,如执行时间超过设定阈值的命令。:表示身份验证相关的操作,如身份验证失败等。:表示主从复制中的同步操作相关的日志。

2023-07-19 09:21:59 383

原创 Linux 处理僵尸进程

命令,都可以查看僵尸进程的父进程ID(PPID),进而推断出僵尸进程的来源。僵尸进程的父进程通常是已经退出或终止的进程。可以通过查看父进程的启动命令或其他相关信息来确定僵尸进程的来源和原因。然后 kill -9 杀掉父进程即可。要查看僵尸进程的来源,可以使用。

2023-07-18 17:44:55 1839

原创 top 命令解释和案例

每行显示一个进程的详细信息,包括进程ID(PID)、进程所有者(USER)、进程优先级(PR)、进程运行时间(NI)、进程占用的CPU百分比(%CPU)、进程占用的内存百分比(%MEM)、进程的虚拟内存大小(VIRT)、进程的物理内存大小(RES)、进程的共享内存大小(SHR)、进程的状态(S)以及进程的命令行(COMMAND)。第三行:显示CPU的使用情况。包括用户态(us)的CPU时间、系统态(sy)的CPU时间、空闲(id)的CPU时间、等待(wa)IO操作的CPU时间以及其他(st)的CPU时间。

2023-07-18 16:10:51 374

protoc-21.12-linux-x86-64

protoc-21.12-linux-x86-64

2024-01-05

windows amd x64 go-bindata.exe

windows amd x64 环境下编译的 go-bindata.exe

2023-03-29

flink 安装包 1.15.2(flink-1.15.2-bin-scala_2.12 .tgz)

flink 安装包 1.15.2(flink-1.15.2-bin-scala_2.12 .tgz)

2022-10-08

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

TA关注的人

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