- 博客(84)
- 收藏
- 关注
原创 当AI都能考过CKA,运维工程师还值钱吗?
摘要:随着AI通过CKA认证考试的能力提升,云原生认证价值面临挑战,但运维工程师的核心价值在于解决实际生产环境中的复杂问题,而非单纯获取证书。证书虽能验证Kubernetes技能,但雇主更看重实践经验。当前认证市场饱和导致价值稀释,工程师需要转向能力驱动发展,持续学习新技术、建立问题解决方法论、培养综合能力和生产环境应变力。真正的职场竞争力来自持续实践与反思,而非单纯通过考试。(149字)
2026-04-17 14:25:26
26
原创 OpenClaw 搭建智能运维巡检工作流实践
《智能运维巡检系统的设计与实践》摘要: 本文介绍了一套基于OpenClaw搭建的智能运维巡检系统,通过多Skill协作架构实现全自动化巡检。系统采用模块化设计,包含环境配置、巡检任务、PromQL查询、集群状态获取和邮件通知等功能模块。标准化六步执行流程确保巡检完整性,从环境确认到邮件发送形成闭环。系统强制要求使用真实集群数据,支持定时触发和超时配置,已稳定运行于生产环境。未来可扩展异常根因分析、预测性巡检等功能。该方案有效解决了传统人工巡检效率低、易出错的问题,实现了从"人找问题"到&
2026-04-16 16:22:18
487
原创 我用 CC + MiniMax 开发了一个 AI 写作工具,已经开源了
这篇文章介绍了一个创新的AI写作工具解决方案,通过四个专业Agent分工协作(选题、写作、润色、定稿),结合本地知识库和Vibe Coding思路,显著提升了写作质量和效率。系统支持一键发布到微信公众号,完全开源且提供在线体验。作者老卢是有着7年经验的运维工程师,分享了这个将AI技术应用于写作流程的实践案例,展示了AI协作开发的潜力。该项目不仅解决了写作卡壳等常见问题,也为AI应用开发提供了新思路。
2026-04-14 22:57:25
165
原创 从零理解 CRD 与 Operator:如何扩展 Kubernetes
《Kubernetes扩展之道:CRD与Operator技术解析》摘要: Kubernetes通过CRD(自定义资源定义)和Operator实现强大的扩展能力。CRD允许用户自定义资源类型,将复杂应用抽象为Kubernetes原生对象;Operator则将运维知识编码化,通过控制器模式自动维护应用状态。典型应用场景包括数据库管理、中间件运维等,能显著降低运维复杂度,提高系统可靠性。文章通过具体示例展示了如何定义CRD和部署Operator,并强调这种模式正在成为云原生应用管理的标准方式,建议开发者通过实践掌
2026-04-14 22:46:39
361
原创 SRE薪资报告:需求年增长25%,但初级岗位正在消失
云原生时代运维岗位正经历结构性变革:SRE等高级人才需求年增25%,而初级岗位却大幅减少。这源于自动化工具替代基础运维工作,以及企业更看重预防性架构设计。运维人员需转型为DevOps工程师、平台工程师或加入云服务商,掌握云原生、自动化等技能。未来运维将演变为平台工程,AI工具将赋能专家型人才。行业正从劳动密集型转向技术密集型,跟上技术浪潮的工程师将获得更大发展空间。
2026-04-14 22:35:46
205
原创 别再搞混了!/etc/profile 和 /etc/bashrc 到底该怎么用?
Linux系统配置文件中,/etc/profile和/etc/bashrc的区别与用法是关键。登录式shell(如SSH登录)会加载/etc/profile和~/.bash_profile,而非登录式shell(如新终端窗口)读取/etc/bashrc和~/.bashrc。最佳实践是将环境变量放在~/.bash_profile,别名和函数放在~/.bashrc。常见问题包括环境变量不生效(需检查配置文件加载顺序)和别名丢失(应放入正确文件)。系统级配置建议放在/etc/profile.d或/etc/bash
2026-04-14 18:34:05
361
原创 运维不是打杂的!这四项核心能力让你薪资翻倍
摘要:运维工程师需要具备四项核心能力:1)深厚的技术功底,掌握Linux调优、容器网络等底层原理;2)自动化能力,使用Ansible等工具实现高效运维;3)架构思维,从被动救火转向主动预防;4)业务理解,使技术真正创造价值。这四项能力的协同发展是职业进阶的关键,也是薪资提升的核心因素。作者老卢作为7年经验的运维专家,将持续分享运维领域的实战经验与技术见解。(150字)
2026-04-13 19:49:22
16
原创 CoreDNS配置详解:forward、cache、rewrite插件最佳实践指南
摘要:CoreDNS作为Kubernetes默认DNS组件,其forward、cache、rewrite三个核心插件的配置直接影响集群网络性能。文章分享了生产环境中因DNS解析延迟导致的故障排查经验,详细解析了三个插件的优化策略:forward插件需根据网络环境选择上游DNS服务器;cache插件通过合理设置TTL和预取机制提升性能;rewrite插件支持域名重写与规范化。最后提供了综合配置示例和监控建议,强调CoreDNS配置需要随业务发展持续优化。
2026-04-13 19:38:08
698
原创 为什么运维越老越吃香?看完这篇我彻底明白了
运维工程师的职业发展呈现"越老越吃香"的特点,这源于经验积累带来的独特价值。资深运维凭借丰富的实战经验,能快速诊断问题、预判风险,形成系统的解决问题方法论。他们具备全面的知识体系,能从全局视角把握系统架构,做出最优决策。随着经验增长,运维工程师可向架构师、技术管理等方向发展,成为团队的技术核心。这种职业优势来自于持续的知识沉淀、能力提升和认知迭代,使得资深运维成为企业不可或缺的技术保障者。运维行业的成长路径证明,专业经验和实战能力是最可靠的职业资本。
2026-04-13 19:26:17
189
原创 深入理解Pod生命周期:从创建到终止的完整链路
本文深入解析Kubernetes中Pod的生命周期管理机制。从Pod创建流程开始,详细介绍了调度、Init容器初始化、三种健康探针(存活、就绪、启动)的工作原理,以及优雅终止机制和PreStop钩子的应用。文章还阐述了Pod状态流转过程(Pending/Running/Succeeded/Failed/Unknown),并提供了实战优化建议。通过理解Pod生命周期各阶段,运维人员可以更好地确保应用在K8s上的稳定运行,体现了云原生应用的可观测性和可控制性设计理念。
2026-04-09 17:22:38
332
原创 etcd 调优实战:SSD 只是开始,99% 的人不知道的缓存配置技巧
《etcd性能调优实战指南》摘要 etcd作为Kubernetes核心组件,其性能直接影响集群稳定性。本文深入剖析etcd性能优化要点:1)架构层面分析WAL日志和BoltDB存储带来的I/O瓶颈;2)纠正SSD配置误区,强调延迟敏感特性;3)详解apiserver缓存机制配置技巧;4)提供etcd核心参数调优方案;5)分享生产环境常见问题解决方案;6)建立完整监控体系。文章指出etcd优化是系统工程,需结合缓存策略、参数调优、监控维护等多维度措施,特别强调在大型集群中这些技巧从"锦上添花&quo
2026-04-07 10:23:20
326
原创 fsGroup 导致的 Pod 启动 5 分钟延迟:卷权限变更的隐藏成本
【Kubernetes fsGroup权限陷阱导致Pod启动延迟问题分析】 当有状态应用Pod启动耗时异常(5分钟以上)而容器逻辑只需几秒时,fsGroup配置可能是罪魁祸首。Kubernetes默认会遍历修改卷中所有文件的GID以匹配fsGroup,对于TB级含海量小文件的存储卷,这一同步操作将严重拖慢启动速度。解决方案包括: 使用fsGroupChangePolicy: "OnRootMismatch"仅检查根目录权限 完全避免fsGroup,通过runAsGroup控制权限 采用i
2026-04-02 23:39:43
663
原创 一条配置失误,生产数据全没了:PVC Reclaim Policy 避坑指南
Kubernetes 中 PVC 删除导致数据丢失是一个常见陷阱,主要由于 StorageClass 的 Reclaim Policy 默认配置为 Delete。本文详解了三种回收策略(Delete/Retain/Recycle),指出几乎所有云厂商默认使用 Delete 策略的风险,列举了四种典型数据丢失场景,并提供了排查方法:通过 kubectl 检查 PV 回收策略。解决方案包括修改现有 PV 策略和创建 Retain 策略的 StorageClass。最后给出最佳实践建议:生产环境必须使用 Reta
2026-04-02 10:26:44
413
原创 Pod 删不掉只能强制删除?Terminating 卡住的 6 种真正原因
摘要:Kubernetes中Pod卡在Terminating状态的6大原因及解决方案。优雅终止流程包括移除Service端点、执行preStop钩子、发送SIGTERM信号等步骤。常见卡住原因包括finalizers阻塞、存储卷未解绑、preStop钩子问题、进程不响应信号、节点故障和控制器异常。排查时可检查finalizers、preStop钩子、节点状态等,必要时强制删除。最佳实践建议合理设置终止超时、简化preStop逻辑、确保信号处理完善。理解这些机制能帮助快速定位和解决Pod删除问题。(149字)
2026-03-31 23:03:01
506
原创 Ingress-NGINX 即将退役!2026年3月前你必须完成的迁移清单
Kubernetes Ingress-NGINX将于2026年3月停止维护,用户需迁移至Gateway API。Gateway API作为下一代入口标准,提供更清晰的三层资源模型(GatewayClass/Gateway/HTTPRoute),支持跨集群管理和更灵活的流量控制。社区提供了ingress2gateway工具可自动转换配置,新版v1.3还新增了负载均衡、流量拆分等功能。建议分四步迁移:评估现状→测试转换→逐步迁移→监控优化,需注意协议兼容性、注解丢失等常见问题。迁移是架构升级的契机,应提前规划以
2026-03-31 00:08:05
360
原创 Pod 内存扩容不再重启容器?K8s 原地扩容技术深度解析
Kubernetes 1.35实现Pod原地扩容GA,支持CPU/内存资源无重启调整。通过resizePolicy配置重启策略,结合kubectl resize子资源操作,可实现对数据库、游戏服务器等有状态应用的无缝扩容。该功能与VPA/HPA协同工作,显著提升资源利用率和服务可用性,但仍存在Windows不支持、内存缩减需谨慎等限制。这一突破性改进使K8s更接近真正的云原生基础设施,为运维和业务带来实质性的效率提升。
2026-03-30 11:35:55
313
原创 从Privileged到Restricted:一份Pod安全加固的渐进式指南
摘要:随着Kubernetes的广泛应用,Pod安全成为关键挑战。文章介绍了Pod安全标准(PSS)的三个级别,重点解析了SecurityContext的4个核心安全参数配置,包括runAsNonRoot、allowPrivilegeEscalation等。建议采用渐进式迁移策略,配合策略引擎实现自动化管理。作者强调Pod安全是持续过程,需要结合监控和团队培训,在保障业务的同时提升容器安全性。(150字)
2026-03-29 00:21:51
350
原创 Dockershim 已死,为什么 Kubernetes 坚持抛弃 Docker?
Kubernetes 1.24版本移除Dockershim,标志着其与Docker的正式"分手"。这一变革源于架构差异:Docker的"大而全"设计与Kubernetes倡导的模块化标准CRI不兼容,而Containerd凭借精简架构实现更优性能(Pod启动快20-30%,内存占用少30-40%)。技术生态正从单一实现转向开放标准,开发者工具也出现Rancher Desktop等轻量替代方案。这场变革揭示了技术演进的规律:拥抱标准优于绑定特定实现,精简架构胜过功能堆砌
2026-03-28 18:41:46
608
原创 buildx x86机器构建arm镜像
本文介绍了Docker buildx的安装配置与多平台镜像构建流程。首先从GitHub获取buildx安装包并配置插件,修改Docker配置启用实验性功能。然后详细说明了安装多平台模拟器的步骤,包括下载binfmt镜像、安装新模拟器的方法。接着指导如何配置buildx构建器,设置Harbor镜像仓库地址,并创建多平台构建器。最后以构建ARM64架构的Ubuntu镜像为例,演示了多平台镜像构建命令和验证方法,包括检查镜像架构和跨平台测试的完整流程。
2025-09-03 17:06:31
430
原创 etcd 备份与集群恢复操作指南
本文介绍了etcd备份脚本及三种集群恢复场景。首先提供了etcd自动备份脚本,包含日志记录、数据备份和7天前文件清理功能。随后详细描述三种故障场景的恢复方案:1) 三台etcd数据丢失时通过快照恢复;2) 单台master被reset时重新加入集群;3) 两台master被reset时先单机启动etcd再重建集群。每种情况都包含具体操作步骤,如修改配置文件、执行join命令、检查etcd状态等,并强调备份文件对集群恢复的关键作用。
2025-09-03 17:02:27
783
原创 IP-IP协议未开通导致POD间网络异常
客户在跨机房的4台CPU服务器和1台GPU服务器部署K8s时,发现CPU与GPU节点间的Pod网络异常。排查发现CPU节点间通信正常,但CPU到GPU节点的IP-in-IP协议通信失败,疑似被防火墙拦截。建议客户调整安全组规则,开放IP-in-IP(协议号4)流量,以解决跨VPC环境下Pod间网络通信问题。全文介绍了IP-in-IP协议原理、问题排查过程及解决方案建议。(150字)
2025-08-20 18:34:03
424
原创 RPM包制作过程
本文介绍了将自定义编译的OpenResty软件制作为RPM包的过程。主要内容包括:安装rpm-build工具、创建构建目录结构、将OpenResty目录打包为tar.gz并放入源码目录、编写详细的spec配置文件(定义软件信息、安装路径、依赖关系等),最后使用rpmbuild命令生成RPM包。该方案实现了OpenResty的一键安装部署,特别包含了systemd服务集成和关键路径修复,确保软件能正确安装和运行。生成的RPM包将存储在/root/rpmbuild/RPMS目录中。
2025-08-20 18:27:45
515
原创 kubeadm k8s证书到期更新
K8s证书过期报错处理方案 当出现x509: certificate has expired错误时,需在三台master节点执行以下操作:1) 使用kubeadm certs check-expiration检查证书有效期;2) 备份/etc/kubernetes目录;3) 执行kubeadm certs renew all更新所有证书;4) 通过kubeadm init phase kubeconfig all重建配置文件;5) 重启k8s组件(先移动再还原manifests目录,并重启kubelet);
2025-07-28 18:43:17
431
原创 webpack收集模块
本文介绍了获取Webpack模块加载器中函数内容的方法。通过分析加载器函数结构,找到存储模块的数组或对象(通常为c.m),然后使用JavaScript代码提取所有函数定义。文章提供了两种解决方案:1)针对数组形式的模块,逐项提取函数字符串并拼接成完整数组代码;2)针对对象形式的模块,遍历所有属性并生成键值对形式的对象代码。最后通过Blob对象将代码保存为JS文件下载到本地,便于后续使用。该方法适用于无法直接获取模块内容的场景,帮助开发者提取和分析Webpack打包后的代码。
2025-07-28 18:41:04
177
原创 单节点APIServer切换内网LB过程
本文详细记录了将Kubernetes集群从单APIServer架构改造为高可用架构的过程。主要步骤包括:1)修改kubeadm工具使证书有效期延长至100年;2)更新APIServer证书并同步到所有Master节点;3)修改集群配置将组件连接指向负载均衡器(LB)。具体操作涉及源码编译、证书更新、配置修改及服务重启等关键环节,同时提供了详细的命令行操作指南。该方案实现了Kubernetes集群的真正高可用,确保各组件通过LB访问APIServer,提高了集群的可靠性和容错能力。
2025-07-18 11:15:12
641
原创 批量下载harbor中的镜像(脚本)
本文介绍了一个用于批量下载Harbor仓库镜像的Python脚本。该脚本支持两种下载模式:1)下载指定项目中的所有镜像;2)下载所有项目中的所有镜像。通过Harbor API获取项目列表和镜像标签信息,使用subprocess调用docker命令完成镜像的拉取和保存为tar文件。下载完成后可通过企业微信机器人发送通知。主要功能包括Harbor认证、项目/镜像查询、镜像下载打包等,适用于镜像备份和迁移场景。
2025-07-18 11:03:49
375
原创 Ubuntu22.04打deb包
本文详细介绍了在Ubuntu 22.04系统中打包deb文件的步骤:1)准备编译后的安装包文件;2)创建工作目录;3)创建DEBIAN/control控制文件并填写包信息;4)将安装包文件放到对应目录结构;5)使用dpkg-deb命令打包生成deb文件;6)最后用dpkg命令安装测试。整个过程清晰展示了从文件准备到最终打包安装的完整流程。
2025-04-29 13:36:39
274
原创 Postgresql数据库高可用-patroni+etcd+haproxy
可以看到k8s-worker-3节点被选举为Leader,k8s-worker-1的角色由Replica转为Sync Standby。Sync Standby:同步流复制节点(下一次选举就是这台)结论:选举期间(大概5秒左右)会有短暂pg不可用的现象。可以看到haproxy和patroni角色是能对应的。可以看到haproxy和patroni角色是能对应的。结论:数据是同步的,并且只有主库可读写,从库只能读。结论:haproxy是能动态感知pg角色切换的。结论:patroni可以实现pg的主备切换。
2025-01-23 18:30:05
2096
原创 deb包临时修改小版本依赖
背景:在客户内网环境下,拷包比较困难。我们的deb包安装的时候缺依赖,发现这个依赖在本机上是存在的,只不过差了一个小版本,这时候我们就可以通过重新打包的方式,让我们的deb包支持本机的依赖包版本。
2025-01-09 14:56:01
490
原创 iperf3工具网络测试
发送端的平均传输速率是多少兆比特每秒。在服务器A和服务器B装iperf3。: 发送端传输了多少兆字节的数据。: 整个测试持续时间是多少秒。receiver是接收端。sender是发送端。
2025-01-09 14:54:02
288
原创 flask写一个自定义webhook
编写flask代码3. 编写模板cat alert_template.tpl4. 启动程序python webhook.py --templates-file alert_template.tplcat alertmanager.py6. 运行alertmanager模拟测试代码告警有两种状态:恢复:告警测试告警,修改status为firing测试恢复,修改status为resolved
2024-12-13 17:33:22
592
原创 ubuntu22.04制作本地源
将/usr/local/apt/目录打包拷贝到内网环境,重复上述流程。后续将Packages文件和apt的目录一同拷贝到内网。执行apt update测试是否有效。例如我拷贝到/home下。
2024-12-13 17:30:25
5082
原创 公有云Ubuntu22.04自定义镜像制作
使用ubuntu用户登录服务器,sudo -i 输入密码,跳转到root。我们的自定义镜像文件就是vmdk文件,在控制台按照文档操作导入即可。设置用户为ubuntu。将原来的uuid改成/dev/vda2。这时候服务器肯定是起不来,执行命令查看。关闭虚拟机,找到虚拟机磁盘存储目录。勾选openssh server。重启服务器,reboot命令。显示/dev/vda2就可以了。选择存储目录设置虚拟机名字。修改完保存退出重新刷新配置。注:必须reboot一下。修改网卡名为eth0。
2024-11-20 15:31:43
874
原创 rabbitmq源码编译安装(离线部署小白版)
离线部署rabbitmq,安装成功后默认位置/usr/local/lib/erlang。libcrypto.so.10和erlang.tar.gz。留着第一台不需要动,在其他机器上操作加入。github上下载3.7.17版本。可以看到队列进行了复制,一主一从。:正则匹配two.开头的队列。可以给集群设置一个名字。创建完成后浏览器访问。
2024-09-13 16:35:09
1268
2
原创 Celery基本使用
Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统,专注于实时处理的异步任务队列,同时也支持任务调度。Celery的架构由三部分组成,消息中间件(message broker),任务执行单元(worker)和任务执行结果存储(task result store)组成。Celery本身不提供消息服务,但是可以方便的和第三方提供的消息中间件集成。包括,RabbitMQ, Redis等等Worker是Celery提供的任务执行的单元,worker并发的运行在分布式的系统节点中。
2024-07-26 10:42:01
716
1
原创 DRF权限组件校验方式重写
方法如果校验通过,直接return,否则将未校验通过的权限类加入到一个列表中,如果for循环完了还没有return,那就走else,返回校验未通过,从未校验通过的列表中取出第一个返回提示。原来循环权限类列表的时候,if判断加了not,表示只要有一个权限类的。的关系,只要有一个校验不通过,就都不通过。的关系,只要有一个权限类校验通过,就通过。现在循环权限类列表,判断权限类的。校验没通过,就直接返回没权限。drf默认的权限校验流程是。我们可以重写方法,修改为。
2024-07-26 09:42:21
533
原创 Kafka压力测试
官方自带kafka-producer-perf-test.shlinux网络带宽监控工具sar。结论:千兆网卡客户端网络流量达上限,Kafka集群生产吞吐,千兆网卡客户端网络流量达上限,Kafka集群消费吞吐为
2024-07-25 11:32:18
1603
原创 Kafka配置内外网分流
之前服务器一直有两块网卡,一块千兆网卡,一块万兆网卡。由于之前数据量不算大,所以直接使用了千兆网卡,并配置了外网映射。随着数据量增大,kafka集群内部通信时网络带宽一直居高不下,甚至将千兆网跑满,导致数据积压。这时候不得不配置内外网分流,将内网通信流量全部走万兆网卡,千兆网卡对外提供服务。:配置kafka认证协议,我们是用的SASL_PLAINTEXT。:kafka默认使用的监听地址,表示默认使用内网监听地址通信。连接kafka,由于kafka需要公网请求访问,所以。:配置内网和外网监听地址;
2024-07-24 09:41:46
880
原创 arm64环境部署rocketmq
arm环境部署rocketmq。如果arm机器没有办法拉取镜像,那就找一台x86的机器也可以拉取arm镜像。如果arm服务器可以拉取外网镜像,那就直接拉取。进入image-build目录。注:IP改成你自己的服务器IP。修改arm环境支持的基础镜像。有一条测试topic,点击。,随便填写,点击提交,出现。
2024-07-22 16:58:53
2405
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅