自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(138)
  • 资源 (5)
  • 收藏
  • 关注

原创 SDK级的kubectl,client-go的深度封装:kom使用指南

kom是一个用于 Kubernetes 操作的工具,提供了一系列功能来管理 Kubernetes 资源,包括创建、更新、删除和获取资源。kom相当于SDK级的kubectl、client-go的使用封装。它让我们能够在代码中,以类似kubectl的通用、一致的管理方式,管理各种内置或者CRD资源。通过使用kom,你可以轻松地进行资源的增删改查和日志获取以及操作POD内文件等动作。在没有CR定义的情况下,如何进行增删改查操作。操作方式同k8s内置资源。

2024-11-20 17:31:11 1932

原创 前端访问链路优化实践方案

前端访问链路优化方案摘要 本文针对多层Nginx转发的前端架构(浏览器→网关→中间转发→业务前端→容器),提出分层优化方案,核心目标是减少延迟、加速静态资源。通过合并Nginx层(3层→2层)、启用HTTP/2/keepalive复用连接、配置强缓存与压缩(Gzip/Brotli),显著降低Hop延迟(每层减少50~100ms)。静态资源采用CDN/OSS直链、浏览器强缓存(命中率>80%)和代理缓存,使平均响应时间从400ms降至100ms内。实施顺序建议:协议优化→缓存配置→链路精简→CDN接入→

2025-11-12 10:13:03 1073

原创 golang如何选择map+锁还是 sync.Map?

在Go语言中,同步map的选择取决于实际场景:sync.Map适合读多写少(如10:1以上)的高并发读取,无需加锁性能高;而map+锁(如RWMutex)更适合读写均衡或写频繁的操作,资源占用更低且遍历高效。核心区别在于sync.Map通过分离读写map减少竞争,但写开销较大;map+锁则提供更稳定的写性能和灵活控制。实际选择应结合读写比例和性能测试结果。

2025-11-06 21:18:28 267

原创 CA证书导入工具项目详细设计教程

本文介绍了基于Wails框架开发的跨平台CA证书导入工具,支持Windows、macOS和Linux系统。该工具采用Go+React技术栈,通过适配器模式实现平台兼容性,提供证书文件选择、验证和导入功能。项目包含前端组件架构、后端核心模块设计及权限管理方案,采用清晰的目录结构和测试策略,确保安全性和易用性。工具界面直观,支持管理员权限检测,简化了证书管理流程,适用于多种操作系统环境。

2025-09-17 09:22:10 1016

原创 带客户端操作界面的CA证书导入工具

本文介绍了一个基于Wails框架开发的macOS CA证书导入工具GUI版本。该工具通过图形界面简化了PEM/DER格式证书导入系统钥匙串的流程,使用Go+React+Ant Design技术栈实现,支持管理员权限操作和详细日志显示。项目开源在GitHub,提供了从环境搭建到生产构建的完整指南,特别强调通过原生系统命令保障操作安全性,所有敏感操作均需用户授权。相较于此前命令行版本,新版本显著提升了易用性。

2025-09-10 22:23:53 645

原创 Wails 入门教程:Go + React + Ant Design 构建跨平台桌面客户端

Wails是一个使用Go和Web技术构建跨平台桌面应用的框架。本教程展示了如何结合Go后端与React+Ant Design前端创建桌面应用。关键步骤包括:1) 安装环境;2) 创建项目;3) 编写Go后端代码;4) 使用React+AntD构建UI;5) 实现前后端通信。最终应用具有原生性能和小体积,适合开发工具类、企业软件等跨平台桌面应用。Wails通过系统WebView渲染,Go处理逻辑,自动生成RPC通信通道,实现了高效开发体验。

2025-09-09 23:03:06 1177

原创 CA证书导入工具测试环境

本文介绍了CA证书导入工具的测试环境搭建方法。测试环境包含Nginx服务器、自签名证书生成脚本和自动化测试流程。主要步骤包括:1) 生成自签名证书;2) 使用Docker运行测试服务器;3) 配置本地域名解析;4) 测试证书导入前后效果对比。还提供了测试环境管理方法和常见问题解决方案。测试完成后可从系统信任库移除测试证书,不应用于生产环境。相关源码可在GitHub仓库获取。

2025-09-06 11:20:05 430

原创 CA证书自动导入工具设计文档

本文档介绍了一个跨平台CA证书自动导入工具的设计方案。该工具旨在解决自签发证书导致的浏览器安全警告和Docker镜像拉取失败问题,通过命令行方式自动将CA证书导入系统信任库。核心功能包括:操作系统自动识别、Windows/macOS/Linux证书导入模块、Docker证书配置、安全验证机制等。工具采用Golang开发,支持主流操作系统,要求管理员权限运行,并包含严格的安全验证措施防止恶意证书导入。文档详细描述了系统架构、功能模块、API设计、安全策略及部署测试方案,为开发人员提供了完整的实现蓝图。

2025-09-06 10:36:09 878

原创 如何在 Lua 中实现链式访问的 Kubernetes 客户端

本文介绍如何在Lua中实现链式访问的Kubernetes客户端。通过Go+Lua(github.com/yuin/gopher-lua)组合,开发者可以创建支持链式调用的Kubectl脚本接口,如kubectl:GVK().Namespace().List()。文章详细解析了实现链式访问的三大核心机制(:语法糖、返回self、userdata+metatable),并给出了Go代码实现步骤,包括注册结构体、设置metatable方法和实现链式函数。这种设计显著提升了脚本的可读性和易用性,适用于DevOps工

2025-06-11 14:30:11 335

原创 使用lua脚本检测k8s资源是否正常

本文介绍了一个基于Lua脚本的Kubernetes资源检测工具Grule,其主要功能包括:通过Lua脚本批量检测K8s资源(如Service、ConfigMap等);结构化输出检测结果;支持自定义脚本扩展;内置多种常用检测规则。工具依赖Go 1.18+、kom库和gopher-lua解释器。使用方法包括配置kubeconfig、编译运行和查看JSON格式的检测结果。核心结构包括LuaKubectl操作封装、检测脚本管理和事件上报机制,开发者可通过添加LuaCheck项扩展检测能力。示例展示了Service

2025-06-10 23:29:43 426

原创 Rootless和标准Docker的对比研究

例如,在一个需要大量数据传输的网络应用中,Rootless Docker的网络速度会明显低于标准Docker。例如,在一个对磁盘读写要求较高的应用中,Rootless Docker的性能会比标准Docker低。例如,在一个对性能要求较高的数据库应用中,标准Docker可以直接访问主机的硬件资源,提高性能。例如,在一个大型的文件存储系统中,标准 Docker可以利用原生驱动进行高效的存储和传输。例如,在一个大规模的分布式系统中,标准 Docker可以提供稳定的性能和可靠的功能支持。

2025-01-05 13:39:04 806 1

原创 LimitRange和ResourceQuota的配置语法

通过合理配置 LimitRange 和 ResourceQuota,可以有效地管理 Kubernetes 命名空间内的资源使用,确保资源的合理分配和系统的稳定运行。ResourceQuota 用于在命名空间级别设置资源配额。它的配置结构与 LimitRange 类似,也包含。LimitRange 用于为命名空间中的 Pod 和容器设置资源限制和默认值。

2024-12-29 08:40:24 675

原创 Kubernetes 中 LimitRange 与 ResourceQuota 的深度剖析

在 Kubernetes 中,资源分为两类:可计量资源(如 CPU 和内存)和命名资源(如 Pod 数量、PVC 数量等)。可计量资源以特定的单位进行衡量,例如 CPU 以核心数或毫核心(m)为单位,内存以字节(Byte)、千字节(KiB)、兆字节(MiB)等为单位。命名资源则是通过计数来管理。LimitRange 和 ResourceQuota 是 Kubernetes 中重要的资源管理工具,它们在不同层面发挥着关键作用。

2024-12-29 08:38:05 1091

原创 Kaniko 与 Spegel:革新容器镜像构建与分发的两大技术

这样,在集群内的工作负载进行部署时,就可以迅速从本地的 Spegel 缓存中获取所需的镜像,从而实现了从镜像构建到部署的高效、安全的一体化流程。此外,Spegel 还具备智能的镜像缓存管理策略,它会根据镜像的使用频率、更新时间以及本地存储资源的使用情况等因素,动态地对本地镜像缓存进行清理和优化,确保本地缓存始终保持在一个合理的大小范围内,既能满足大部分工作负载的镜像需求,又不会因缓存过多无用镜像而占用过多的本地存储资源,从而实现了高效的本地镜像缓存管理和资源利用的平衡。(一)金融科技公司的容器化实践。

2024-12-26 08:24:34 943

原创 基于Kubernetes Node节点的镜像管理策略研究

当磁盘使用率大于等于 imageGCHighThresholdPercent 时,触发镜像的删除行为,镜像会按照上次使用时间顺序从最久未被使用开始逐个删除,每删除完一个镜像,都会再次获取磁盘使用率并判断是否小于等于 imageGCLowThresholdPercent ,一旦降至低水位线,则停止删除镜像,通过这种动态的阈值判断机制,确保了磁盘空间的有效利用和镜像的合理保留,避免了因过度回收镜像导致应用再次启动时需要重新拉取镜像的额外开销,同时也防止了磁盘空间被镜像过度占用而影响系统正常运行。

2024-12-26 08:17:39 842

原创 AMIS实现对k8s status.conditions的状态界面化展示

AMIS实现对k8s status.conditions的状态界面化展示。

2024-12-24 21:38:36 339

原创 在 AMIS 中封装一个支持自定义背景色的 HTML 内容组件

这个组件非常适合日志、代码块或其他文本展示场景,能够提高可读性并增强用户体验。通过 AMIS 的自定义渲染器功能,我们封装一个组件。,并注册为可复用的渲染器。在 AMIS JSON 配置中,通过。显示的html块为正常背景色。显示的html块为浅红色。

2024-12-17 19:50:16 1357

原创 k8m新增 Describe内容AI解读功能,再也不怕看不懂了

是一款集 AI 与 Kubernetes 于一体的轻量级控制台工具,专为简化集群管理设计。基于 AMIS 构建,并通过 kom作为 Kubernetes API 客户端,内置了 Qwen2.5-Coder-7B 模型交互能力,同时支持接入您自己的私有化大模型。

2024-12-17 19:43:13 1329

原创 k8M 新增 资源Describe 功能,保持与kubectl 显示格式一致,方便快捷

是一款集 AI 与 Kubernetes 于一体的轻量级控制台工具,专为简化集群管理设计。基于 AMIS 构建,并通过 kom作为 Kubernetes API 客户端,内置了 Qwen2.5-Coder-7B 模型交互能力,同时支持接入您自己的私有化大模型。

2024-12-17 07:00:00 562

原创 imap邮件备份工具对比分析

imap downloader 是一款开源 高效 安全的邮箱备份工具

2024-12-16 17:20:59 1622

原创 年底将至,又要备份邮箱了。推荐一个开源安全备份工具

可以将邮件从服务器端完整地下载到本地,包括邮件的正文内容以及所有附件,确保信息的完整性。支持按照指定的文件夹前缀进行有针对性的邮件备份,方便用户根据自己的需求选择特定的邮箱文件夹进行备份操作。最新版本为 v0.3,不断在功能和稳定性上进行优化和提升。

2024-12-16 16:22:20 2071 4

原创 CRC与常见哈希算法介绍与对比

在数字信息的高速发展中,确保数据的完整性和准确性成为至关重要的任务。无论是在网络传输、数据存储还是软件应用中,如何有效地验证数据是否被篡改或损坏都需要依赖高效的算法。它们通过生成固定长度的校验值来检测数据的完整性,并广泛应用于各种技术领域。本文将探讨这些算法的原理、特点、应用及相互比较,帮助读者全面了解它们的功能和适用场景。CRC算法基于多项式除法,它将数据视为一个多项式,并使用预设的生成多项式进行除法运算,最终余数作为CRC校验值。DJB2是一种简单的哈希算法,主要依赖乘法和位移操作来更新哈希值。

2024-12-13 15:33:06 976

原创 如何使用 Go 和 ANTLR 解析 SQL 查询中的 WHERE 子句

我正在开发一个开源项目 `kom`,目标是实现通过 SQL 查询 Kubernetes 资源。因为 Kubernetes 资源是 JSON 格式的嵌套结构,而不是传统的 db.table 结构,所以在处理 SQL 查询中的 `WHERE` 语句时,必须先将像 `x.y.z.m` 这样的属性改写为一个整体的字段,以便能够正确查询 Kubernetes 中的资源。

2024-12-13 15:18:51 940

原创 Kom——基于 SQL 查询的 Kubernetes 资源管理新思路

Kom 作为一款专为 Kubernetes 资源查询设计的工具,其新增的 SQL 查询功能为 Kubernetes 资源管理带来了显著的提升。通过全面支持各种资源类型、提供灵活多样的查询条件、实现简洁高效的查询操作以及强大的排序功能,Kom 在与传统的 Kubernetes 资源获取方式对比中展现出了明显的优势。无论是对于简单的内置资源查询还是复杂的自定义资源检索,Kom 都能够轻松应对,大大降低了查询的复杂性,提高了查询效率,并且方便了开发人员和运维人员在 Kubernetes 集群中的资源管理工作。

2024-12-11 22:12:51 892

原创 你敢相信吗,用SQL竟然能查k8s资源了,select * from deploy

使用sql语句查询k8s资源

2024-12-11 21:58:37 1374

原创 OCI 镜像格式全面解析与实践指南

在实际的容器化应用开发、部署和运维过程中,深入理解和熟练掌握 OCI 镜像的相关知识和技术,能够帮助开发人员和运维人员更好地构建和管理容器化应用,提高应用的质量和效率,促进容器技术在云计算、微服务架构等领域的广泛应用和持续发展。镜像层是容器镜像的实际数据存储单元,是 OCI 镜像的重要组成部分。本教程将深入探讨 OCI 镜像的各个方面,包括其标准格式、相关工具的使用以及与其他类似镜像格式(如 Docker 镜像、OSI 操作系统镜像)的对比等内容,旨在为读者提供全面、深入且实用的 OCI 镜像知识体系。

2024-12-10 15:44:54 2315

原创 基于Docker与Containerd的HTTP镜像仓库拉取配置全解析

本文详细阐述了Docker和Containerd在拉取HTTP镜像仓库时的配置过程,包括从配置文件的编辑到服务的重启,再到镜像的拉取以及常见问题的解决方案。在实际应用中,无论是构建企业内部的容器化应用环境,还是在测试和开发场景下使用HTTP镜像仓库,正确配置Docker和Containerd都是至关重要的。通过深入理解这些配置步骤和相关知识,可以更好地利用容器化技术,提高应用部署和管理的效率,同时也能够在遇到问题时快速定位并解决,保障容器化应用的稳定运行。(四)拉取HTTP镜像仓库中的镜像。

2024-12-10 15:27:10 2083

原创 Nginx Ingress Controller 基于选举 ID 的 Leader 选举机制深度剖析

摘要: 本文深入探讨了 Nginx Ingress Controller 如何通过选举 ID 实现 leader 选举机制,详细阐述了其原理、代码实现细节以及与 Endpoints 的交互过程,旨在全面解析该机制在保障系统高可用性方面的作用与实现方式,为深入理解 Nginx Ingress Controller 的分布式特性提供详尽参考。在 Nginx Ingress Controller 的代码库中,与 leader 选举相关的代码通常位于特定的包或模块中。(二)更新 Endpoints 选举标记代码。

2024-12-10 13:54:55 761

原创 看Kubernetes v1.31 如何解决大模型镜像大的问题? ImageVolume深度解析与应用实践

在镜像下载完成后,kubelet 并不会像处理普通容器镜像那样将其展开并运行容器进程,而是将镜像的文件系统以只读的方式挂载到 Pod 容器内指定的挂载点。容器运行时负责为容器创建一个隔离的文件系统视图,并将 ImageVolume 对应的镜像文件系统挂载到指定的路径下,使得容器内的应用程序能够像访问本地文件系统一样访问镜像中的 artifacts。在 Pod 启动过程中,Kubernetes 会自动处理该镜像的拉取(如果本地不存在)和挂载操作,将镜像中的内容以只读的方式挂载到容器内指定的目录路径下。

2024-12-10 13:37:23 1393

原创 Kubernetes Informer 机制全解析教程

在 Kubernetes(k8s)中,Informer 是一种极为关键的机制,用于缓存和高效检索资源对象信息,它能够有效减少对 API Server 的查询压力,并实现事件驱动的编程模型,使得客户端应用可以及时响应集群中资源的变化。通过以上对 Informer 机制核心源码的解析,我们可以深入理解其在 Kubernetes 集群中如何高效地管理资源对象信息,以及如何实现与客户端应用的有效交互,为开发基于 Kubernetes 的应用提供坚实的基础。一、Informer 概述。(三)事件处理及回调相关。

2024-12-10 13:11:28 1181

原创 HTTP/3 教程:全面解析下一代网络协议

一、HTTP/3 简介HTTP/3 是 HTTP 协议的第三个主要版本,它在 HTTP/2 的基础上进行了改进,主要是为了解决 HTTP/2 在传输层存在的一些问题,特别是与 TCP 和 TLS 相关的延迟问题。HTTP/3 使用 QUIC(Quick UDP Internet Connections)协议作为其传输层协议,而不是传统的 TCP。二、QUIC 协议基础QUIC 是一种基于 UDP 的低延迟、高可靠的网络传输协议。它具有以下特点:(一)多路复用与 HTTP/2 类似,QUIC 允许在

2024-12-10 10:04:44 1562

原创 KCP 协议:优化 UDP 传输的高效可靠解决方案

同时,KCP 在接收端设有数据缓存与排序功能,将收到的数据依序列号缓存并重组,有效解决了 UDP 数据可能乱序的问题,保证应用层接收数据完整有序。KCP 的重传超时时间计算更灵活,如连续丢包时,TCP 的 RTO 翻倍增长,KCP 仅增长 1.5 倍,能更快重传数据。综上所述,KCP 协议凭借其在可靠性、传输效率、延迟和灵活性等方面的卓越特性,在众多对网络传输有特殊要求的领域发挥着不可替代的作用,无论是游戏开发、音视频通信还是分布式系统构建等方面,都为开发者提供了一种高效且可靠的网络传输解决方案。

2024-12-10 09:48:36 1089

原创 浅析Ingress、GatewayAPI、Istio、Nginx对灰度发布的支持

浅析Ingress、GatewayAPI、Istio、Nginx对对度发布的支持

2024-12-09 09:43:07 1275

原创 九个例子带你解锁 Go 高性能编程的秘籍

在当今的软件开发领域,Go 语言凭借其出色的并发性能、简洁的语法和高效的内存管理,广泛应用于后端开发、云计算、分布式系统等众多领域。然而,要想让 Go 程序在各种复杂的场景下都能高效运行,开发者需要深入了解并运用一系列性能优化技巧。本文将为您详细介绍九大提升 Go 程序性能的实用秘籍,帮助您构建更加快速、稳定和资源高效利用的应用程序。但需牢记,在实际应用中应依据具体场景灵活运用,并且在优化后务必进行全面测试,确保程序在性能提升的同时保持正确稳定的运行状态。七、切片的优化操作与内存管理。

2024-12-09 07:00:00 706

原创 go语言读写锁中的lock unlock 跟互斥锁中的lock unlock有什么区别?

如果已经有其他goroutine持有读锁或写锁,则该goroutine会被阻塞,直到所有读锁和写锁都被释放。方法时,它会获取互斥锁,如果锁已经被其他goroutine持有,则该goroutine会被阻塞,直到锁被释放。中,所有操作(无论是读还是写)都是互斥的,这意味着在任何时候,只有一个goroutine可以访问共享资源。中,多个goroutine可以同时获取读锁(即并发读),只有当写锁被请求时,才会阻塞其他读和写操作。只提供一种锁,即互斥锁,无论是读操作还是写操作,都必须获取同一把锁。

2024-12-08 08:34:26 462

原创 认识Go语言中的锁,别再傻傻分不清

读锁,当有写锁时,无法加载读锁,当只有读锁或者没有锁时,可以加载读锁,读锁可以加载多个,所以适用于“读多写少”的场景。在并发编程中,锁是一种基本的同步机制,用于保护共享资源不被多个goroutine同时修改,从而避免数据竞争和保证数据一致性。当一个goroutine获取了互斥锁后,其他所有尝试获取该锁的goroutine都会被阻塞,直到锁被释放。方法用于获取互斥锁,如果锁已被其他goroutine持有,则等待直到锁被释放。调用会从获得的锁中排除新的读取锁,即写锁权限高于读锁,有写锁时优先进行写锁定。

2024-12-08 08:30:23 537

原创 让golang内存对齐不再神秘

而 int8 类型的 Gender 字段虽然只占用 1 字节,但由于要保证后续 NickName 字段(按照 8 字节对齐)的对齐要求,编译器会在 Gender 字段后填充 7 个未使用的字节,使得 NickName 的偏移量为 16。开发者应该在设计结构体和数据布局时,充分考虑内存对齐的影响,根据实际需求合理调整字段顺序,以达到最佳的编程效果。了解了内存对齐的原理后,我们可以通过调整结构体中字段的顺序来优化内存布局,减少填充字节的数量,从而节省内存空间。二、内存对齐的原理与规则。

2024-12-08 07:38:43 1037

原创 golang轻松解析 JSON 数据方案

假设存在 JSON 字符串 {“name”: “Alice”, “age”: 25, “hobbies”: [“reading”, “swimming”]}。对于嵌套结构的 JSON 数据,如 {“person”: {“name”: “Bob”, “address”: {“city”: “New York”}}}。当 JSON 数据包含数组时,例如 {“fruits”: [“apple”, “banana”, “cherry”]}。上述代码会输出 Alice。四、gjson 的优势。

2024-12-08 07:38:21 1073

原创 深入解析 Golang 并发读写锁

它通过合理的锁机制,有效平衡了读操作的并发性能与数据一致性保障之间的关系,允许多个协程同时进行读操作,但在写操作时保持独占性,防止数据竞争与不一致问题。当写操作协程获取写锁时,读操作协程会被阻塞在 rwMutex.RLock() 处,直到写操作完成并释放写锁后,读操作才能继续执行,清晰地展示了读写锁的互斥特性。缺点:同一时间只能有一个协程持有写锁,无论是读操作还是其他写操作都会被阻塞,在写操作频繁的场景下,会严重降低系统的并发性能,导致整体效率低下。(一)读锁(RLock)与释放读锁(RUnlock)

2024-12-08 07:38:05 765

原创 Git 提交信息重塑:清理多邮箱乱象,规整开发记录

在项目开发进程中,我们遭遇了一个棘手的问题:因众多开发环境的存在,代码提交记录里一人多邮箱与多名称的现象屡见不鲜。这仿佛在本应清晰的代码贡献版图上,搅起了层层迷雾,令开发贡献的统计与管理陷入困境,难以前行。待指令执行完毕,昔日繁杂无序的提交信息将焕然一新,统一的名称与邮箱标识将贯穿整个开发轨迹,使代码演进的脉络一目了然,开发数据的梳理与分析也将重回正轨,高效有序。别慌,Git 赋予了我们化解难题的利器。

2024-12-08 07:37:43 214

keepalive实验全部脚本及代码

keepalive实验全部脚本及代码

2024-12-06

543876fd05734ccdfcf755f80f748c31.gif

543876fd05734ccdfcf755f80f748c31.gif

2024-12-03

PPT技巧大全

一些实用的ppt制作技巧,包括添加音乐等

2012-07-26

sqlite-3_5_9.zip

sqlite-3_5_9.zip 简单的数据库

2008-06-29

eWebEditor.rar

我自己常用的eWebEditor,绝对好用,我的系统都是用这个,呵呵

2008-06-29

CCword 操作 类 word 文字 插入 替换

CCword 用来操作word 插入文字等

2009-07-21

QuickJumplist

QuickJumplist 不错的跳转工具

2012-10-26

空空如也

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

TA关注的人

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