自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (1)
  • 收藏
  • 关注

原创 ovn-northd组件介绍

为了理解ovn-northd,我们首先需要对 OVN 的整体架构有一个基本了解。OVN 是由 Open vSwitch (OVS) 项目开发的一个用于实现虚拟网络的系统。它旨在为虚拟机、容器等虚拟化环境提供网络虚拟化功能。北向数据库: 这是 OVN 的“大脑”或“意图”数据库。它存储了网络管理员希望实现的逻辑网络配置。例如,逻辑交换机、逻辑路由器、ACL(访问控制列表)、端口等。

2025-11-23 20:48:59 588

原创 k8s集群,master节点进入维护模式和退出维护模式

集群类型推荐操作后果多 Master (HA) 集群集群管理功能平滑切换,服务不中断。单 Master 集群不要drain,直接重启/维护集群管理功能在维护期间中断。在生产环境中,始终使用多 Master 高可用集群,这样你就可以安全地对单个 Master 节点进行维护,而不会影响整个集群的稳定性。

2025-11-06 15:02:55 866

原创 k8s集群,计算节点进入维护模式和退出维护模式

被标记为不可调度:Kubernetes 调度器会停止向该节点分配任何新的 Pod。驱逐现有 Pod:该节点上正在运行的 Pod 会被安全地终止。Pod 重建:如果这些 Pod 是由Deployment等控制器管理的,控制器会在其他健康的节点上重新创建它们。服务不中断:通过和Service机制,在旧 Pod 终止前,新 Pod 会启动并准备就绪,从而实现流量的平滑切换。

2025-11-06 14:09:08 415

原创 怎么升级k8s集群中某一个节点

逐个操作:绝对不要同时升级多个节点,尤其是在生产环境中。先控制平面,后工作节点:这是保证集群稳定性的关键。版本兼容性:Kubernetes 官方规定,kubelet版本不能高于版本,且小版本差异不能超过 2。升级时请务必遵守。回滚计划:如果升级失败,你需要有清晰的回滚计划。这就是为什么备份至关重要。回滚通常包括:恢复配置、降级kubeadmkubeletkubectl包,然后重启服务。按照以上步骤,你就可以安全、平滑地升级 K8s 集群中的任何一个节点了。

2025-10-31 15:17:02 823

原创 sqllite实现集群模式的方式

SQLite 本身是一个嵌入式数据库,设计为单机、单线程访问,。但可以通过一些间接方式实现类似集群的功能,例如主从复制、读写分离或分布式存储。

2025-10-25 11:44:35 513

原创 go中,调用context 返回的cancel函数会触发哪些行为

会触发什么?层面触发的行为后果context内部ctx.Done()通道被关闭不再阻塞,监听它的select语句被激活。ctx.Err()返回可以通过检查ctx.Err()来确认context是否已被取消以及原因。级联取消所有子context实现了整个调用链的统一生命周期管理。外部库/代码中断操作并立即返回如 HTTP 请求被中止、gRPC 调用被取消、SQL 查询被停止。返回一个非nil的错误通常是或,调用者可以据此判断操作是否因取消而失败。释放资源如关闭网络连接、文件句柄等。一句话概括:调用。

2025-10-10 16:48:04 255

原创 使用 Gin 框架来实现 SSE (Server-Sent Events)

特性方案一 (基础实现)方案二 (生产级实现)目标演示 SSE 的基本原理构建可扩展、可管理的实时服务架构单一 goroutine 处理单一连接Broker模式,集中管理所有连接连接管理无,连接断开后 goroutine 泄漏使用sync.Map和defer安全管理,自动清理消息分发循环内生成消息,只能发给当前客户端支持广播,可轻松扩展为点对点或组播解耦性消息产生和发送耦合在 Handler 中消息产生(如/broadcast端点)和发送(Broker)完全解耦健壮性较差,无错误恢复和背压处理。

2025-10-10 16:07:08 1291

原创 ipmitool 需要传递power_id吗,ipmitool 和 power_id有关系吗

ipmitool 本身不需要 power_id直接通过 BMC 控制服务器power_id 是 Cobbler 的抽象概念power_id 的使用场景PDU 管理时必需多电源环境有用标准单服务器 IPMI 可选选择依据单服务器:不需要 power_idPDU 控制:需要 power_id刀片服务器:可能需要 power_id理解这个区别有助于正确配置 Cobbler 的电源管理功能,避免配置错误。

2025-10-09 16:34:20 333

原创 Python中用于XML-RPC(XML Remote Procedure Call)通信的标准库(xmlrpc)入门

xmlrpc是Python中用于XML-RPC通信的标准库,包括客户端()和服务器()组件。它提供了一种简单的方式来实现远程过程调用,但在现代应用中,它可能不如REST或gRPC等技术流行。在测试中,我们经常使用来模拟XML-RPC调用,以避免实际的网络请求。

2025-09-24 23:19:14 613

原创 在 Go 中,用internal实现代码的封装和访问控制

在 Go 中,internal包是一种特殊的包命名约定,用于实现代码的封装和访问控制。以下是internal。

2025-09-17 21:03:37 431

原创 Go 语言中一个重要的概念:可寻址性(addressability)

在 Go 语言中,一个值是可寻址的(addressable)意味着我们可以获取它的内存地址,即可以对它使用操作符。变量指针解引用数组元素切片元素结构体字段可寻址值的字段而不可寻址的常量字面量函数返回值map 中的值接口值(具体值可能不可寻址)类型转换结果某些表达式结果底层实现:map 可能会 rehash,导致内部值的位置改变内存安全:避免创建指向可能失效的内存的指针设计一致性:确保 map 的行为在任何情况下都是可预测的。

2025-09-16 22:21:38 393

原创 Go中非常方便的两中方法调用规则

自动转换:编译器会自动将值类型转换为指针类型便利性:使代码更加简洁直观灵活性:允许在不同场景下使用相同的方法只有可寻址的值才能调用指针接收者方法这种自动转换不影响接口实现规则(只有指针类型实现了指针接收者方法)这种设计体现了 Go 语言追求简洁和实用的哲学,让开发者能够更自然地编写代码,而不必过分关注类型转换的细节。

2025-09-16 22:17:51 397

原创 深入探索 go中指针接受者和值接受者的区别

修改能力:指针接收者可以修改原始值,值接收者不能性能:指针接收者避免了大型结构体的复制开销方法集:指针接收者方法只属于指针类型,值接收者方法属于值类型和指针类型接口实现:这会影响类型是否实现了特定接口选择哪种接收者取决于你的具体需求,但一般来说,如果方法需要修改接收者或者接收者是大型结构体,应该使用指针接收者。

2025-09-16 22:13:32 877

原创 docker容器端口映射的原理

这个DOCKER链就是PREROUTING和OUTPUT链将数据包送来的地方。表明有两条规则(即PREROUTING和OUTPUT中的规则)跳转到了这个链。这是一个非常重要的动作。RETURN意味着“立即返回”,即跳出当前链(DOCKER链),回到原来调用它的链(PREROUTING或OUTPUT)的下一条规则继续处理。它匹配所有数据包 (这实际上是一个**“默认通过”的兜底策略**。它的意思是:“如果一个数据包进入了DOCKER。

2025-09-14 20:10:13 870

原创 tun/tap设备是什么,它是怎么工作的,在k8s网络中有什么作用

tun/tap设备是什么?Linux 内核提供的虚拟网络设备,是用户空间和内核网络栈的桥梁。怎么工作?用户空间程序通过read()write()系统调用,像操作文件一样收发网络数据包tun) 或以太网帧tap在 K8s 中的作用?1.构建覆盖网络:作为隧道入口,将 Pod 的跨节点流量封装成能在物理网络传输的包(如 Flannel)。2.实现网络策略:作为流量拦截点,让用户空间的网络插件(如 Calico 的 Felix)能检查和控制 Pod 的流量。tun/tap。

2025-09-14 18:15:29 1193

原创 深入理解 OCI 和 CRI它们之间的关系

OCI 是一个由 Linux 基金会在 2015 年主导成立的治理委员会和项目。它的诞生背景是,当时 Docker 公司如日中天,几乎成为了容器的代名词。为了避免容器技术被单一厂商(Docker)锁定,并促进容器生态的健康发展,多家行业巨头(包括 Google, Red Hat, IBM, Microsoft, Amazon 等)联合发起了 OCI。核心目标: 制定容器格式的开放行业标准。让任何人都可以基于这些标准来创建符合规范的容器工具,从而实现不同工具之间的互操作性。你可以把 OCI 想象成**“容器世

2025-09-14 11:37:06 1014 1

原创 动态编译 vs. 静态编译,容器时代那个更有优势?

特性动态编译 (Python/Java/Node.js)静态编译 (Go/Rust)最终产物可执行文件 + 一堆动态库 (.so/.dll)单一、自包含的可执行文件部署方式需要复杂的依赖管理 (aptpipnpm复制文件即可Docker 镜像较大 (几十MB到GB),需包含运行时和依赖极小 (几MB到十几MB),甚至可用scratch启动速度较慢 (需加载解释器/JVM和库)极快(毫秒级)环境一致性好 (但仍有底层库版本风险)完美(行为在任何地方都一样)安全性攻击面较大 (包含运行时和库)

2025-09-14 10:04:26 723

批量文本替换工具

UltraReplace是一款功能全面的超级批量文本替换程序。软件是文本替换的利器,批量文本替换的不二之选,站长必备,挂马网页杀手,支持所有纯ANSI文件,支持GBK/Unicode/UTF8编码的htm、html、asp、java、php等文件,可自定义所支持的文件类型,支持16进制替换,支持单行和多行以及段落替换,支持特征替换和提取,支持正则替换,支持多规则同时替换并可以行导入规则,智能规则排序功能,支持多级目录、大小写匹配、支持备份和恢复,替换速度快。

2018-07-06

空空如也

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

TA关注的人

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