- 博客(122)
- 收藏
- 关注
原创 systemtap定位性能问题
SystemTap是一种强大的动态跟踪工具,可以用于诊断Linux系统的性能问题。SystemTap提供了低开销的动态跟踪能力,适用于生产环境中的实时问题诊断。通过组合不同探针,可以构建复杂的性能分析场景。SystemTap脚本使用一种类似C的语言,可以探测内核和用户空间事件。确保系统已安装SystemTap及相关内核调试符号包。通过监控系统调用频率和延迟,可以识别性能瓶颈。
2025-11-10 09:58:30
272
原创 iostat命令详解
iostat 是 Linux 系统监控工具的一部分,用于报告 CPU 使用情况和设备(磁盘、分区等)的 I/O 统计信息。通过分析这些数据,可以诊断系统性能瓶颈,尤其是磁盘 I/O 相关的性能问题。
2025-11-10 09:57:08
305
原创 argocd sync option介绍
ArgoCD 的sync选项用于将集群状态与 Git 仓库中定义的期望状态同步。它支持多种参数和策略,用于控制同步的行为和资源处理方式。
2025-11-05 16:57:50
497
原创 helmfile使用指南
Helmfile 是一个用于管理多个 Helm Chart 部署的工具,通过声明式配置文件(YAML)定义 Helm 的 releases、values、repositories 等。适用于复杂环境下的多应用部署,支持依赖管理、环境隔离和批量操作。
2025-11-04 15:40:51
419
原创 traceroute工作原理
Traceroute 是一种网络诊断工具,用于追踪数据包从源主机到目标主机的路径。它通过分析数据包经过的每一跳(路由器或网关)来绘制网络路径,并测量各跳的延迟。
2025-11-04 10:09:57
530
原创 k8s pod oom排查攻略
通过监控工具(如 Prometheus 或 Grafana)长期跟踪 Pod 的内存使用趋势,帮助定位问题。排查应用代码中是否存在内存泄漏或不合理的内存使用,例如未释放的资源、大对象缓存等。实时监控 Pod 的内存使用情况,确认是否存在内存使用过高或持续增长的情况。检查容器的日志,尤其是应用日志,可能存在内存泄漏或异常内存占用的线索。确保节点本身有足够的内存资源,避免因节点内存不足导致 Pod 被终止。检查 Pod 的 YAML 配置或部署文件,确认容器的内存限制(根据实际内存使用情况,调整 Pod 的。
2025-10-31 17:24:40
384
原创 golang http框架 middleware作用和案例
大多数Go HTTP框架通过HandlerFunc的链式调用来实现中间件模式。基本模式是包装http.Handler或http.HandlerFunc,在调用实际处理函数前后执行额外逻辑。在Go语言的HTTP框架中,中间件(Middleware)是一种在请求到达处理器之前或之后执行特定逻辑的机制。中间件通常用于处理横切关注点,例如日志记录、身份验证、请求处理、错误处理等。通过合理使用中间件,可以构建出结构清晰、功能强大且易于维护的Go HTTP应用。使脚本在命令失败时立即退出,打印执行的命令方便调试。
2025-10-31 15:13:46
655
原创 Shell脚本高效编写技巧
变量处理与字符串操作使用替代可以避免歧义,例如。字符串截取可通过实现,能删除最短匹配前缀。检查变量是否为空:错误处理与调试使脚本在命令失败时立即退出,打印执行的命令方便调试。使用捕获信号:数组与循环现代Shell支持数组操作:参数解析使用处理命令行选项:文件处理技巧逐行读取文件:检查文件属性:数学运算使用进行整数运算:子shell与进程替换用创建子shell隔离环境,进程替换实现命令输出作为文件:高效文本处理组合使用, , 等工具:跨平台兼容性使用提高可移植性。避免依赖非
2025-10-31 15:11:21
385
原创 golang程序对接prometheus
根据需求定义指标类型(Counter、Gauge、Histogram 或 Summary)。var (},
2025-10-30 10:15:25
319
原创 k8s扩展调度能力的三种方法
监听未调度的 Pod(匹配自定义名称)。调用 Kubernetes API 完成绑定(需具备bind权限)。可与默认调度器共存,通过区分。
2025-10-30 10:12:13
522
原创 k8s rbac权限最小化实践
通过持续优化上述实践,可显著降低 Kubernetes 集群的横向移动风险,符合零信任架构的安全要求。建议结合 CIS Kubernetes Benchmark 进行周期性安全评估。RBAC(Role-Based Access Control)是 Kubernetes 中用于控制用户或服务账户对资源访问权限的安全模型。
2025-10-29 11:35:40
603
原创 argocd发布实现预检和后检能力
预检(Pre-Hook)用于在应用部署前执行验证或准备工作,例如检查依赖服务是否就绪、资源配额是否充足等。ArgoCD 支持通过。后检(Post-Hook)用于部署完成后执行测试或通知,例如运行集成测试、发送 Slack 消息等。结合自定义健康检查(Resource Health)增强验证能力。在 Kubernetes 资源清单中添加注解。
2025-10-24 15:01:21
399
原创 数据驱动运维的变化历程
CMDB(配置管理数据库)是运维数据的核心基础,主要用于存储和管理IT基础设施的配置项(CI)及其关系。现代运维元数据采用自动化采集工具,如Prometheus、Telegraf等,实现实时或近实时数据抓取。运维元数据不仅包含传统配置项,还涵盖实时状态、性能指标、日志、链路追踪等动态信息。元数据的范围扩展到容器、微服务、API等现代架构元素,数据粒度更细,更新频率更高。运维元数据为AIOps提供了数据基础,包括异常检测(如指标突降)、根因分析(如日志模式匹配)、预测性维护(如资源利用率趋势预测)。
2025-10-23 10:26:20
494
原创 关于运维自动化建设的一些基本思考
所有运维操作需基于标准化流程和模块化工具设计,确保脚本、配置、部署流程可复用。自动化流程需与监控系统(如Prometheus、Zabbix)联动,实时跟踪执行状态、资源消耗及业务影响。所有自动化脚本、配置文件和流程文档必须纳入版本控制系统(如Git),并遵循语义化版本规范。变更需通过代码评审,文档实时更新,包括用途、参数说明、依赖关系及使用示例。敏感信息(如密码、密钥)通过加密存储(Vault、KMS)动态获取,禁止明文存储。从高频、重复性任务入手(如日志轮转、备份),逐步扩展至复杂场景(如自动扩缩容)。
2025-10-23 10:23:56
459
原创 k8s pod优雅下线实践
在Kubernetes中,Pod的优雅下线(Graceful Shutdown)是确保服务无中断的关键环节。当Pod需要终止时,系统会发送SIGTERM信号,预留时间让应用完成未完成的任务、释放资源并拒绝新请求,避免数据丢失或客户端错误。部分云厂商的负载均衡器存在同步延迟(如AWS ALB约需15秒)。应用需捕获SIGTERM信号并执行清理逻辑。在Pod的YAML中定义。
2025-10-22 17:09:51
567
原创 TCP连接被重置(Connection reset by peer)问题分析
TCP连接中出现"Connection reset by peer"(RST包)表示对端主动关闭了连接。防火墙、负载均衡器等中间设备可能主动重置不符合策略的连接。服务端读取完数据后直接关闭连接,而未等待客户端确认。正确做法是让客户端主动关闭,或实现优雅关闭机制。连接池中的连接被服务端关闭后,客户端仍尝试复用。检查连接池配置,如最大存活时间、健康检查等参数。当服务端进程崩溃或主动关闭连接时,会发送RST包。对于微服务架构,实现心跳机制检测连接状态。配置合理的keepalive参数,避免过早关闭空闲连接。
2025-10-22 17:08:25
666
原创 降低故障影响手段:预案执行和日常演练
设置多维度的量化评估体系,包括响应时效(如故障发现时间、预案启动时间)、处理准确率(如操作步骤错误次数)、协同效率(如跨部门沟通耗时)等关键指标。建立演练评分卡,记录每次演练的指标达成情况。建立完善的故障处理预案文档,明确各类故障场景的响应流程、责任人及联系方式。预案内容需包括故障等级划分、处理步骤、资源调配方案、沟通机制等核心信息。每次演练后须召开复盘会议,分析时间损耗点、沟通断层等问题,并更新预案文档。建立预案生命周期管理制度,明确review周期和触发条件(如业务变更、架构调整后必须重新评估)。
2025-10-21 10:05:48
716
原创 故障预案制定原则
定期组织演练,验证预案的可操作性,并根据演练结果优化流程。例如,针对服务器宕机场景,预案应包含具体的切换步骤、时间要求及责任人。例如,数据库故障场景下,需确保备用数据库可快速启用,数据丢失控制在可接受范围内。根据故障影响程度划分等级(如轻微、一般、严重),制定差异化的响应策略。例如,轻微故障可由一线团队处理,严重故障需启动跨部门协作并上报管理层。涉及第三方服务的故障预案,需明确SLA(服务级别协议)条款及违约责任。故障预案需覆盖全业务流程,包括预防、监测、响应、恢复等环节,确保各环节无缝衔接。
2025-10-21 10:03:54
351
原创 架构术语:单元化
单元化(Unitization)是一种分布式系统架构设计模式,将系统划分为多个独立、自包含的单元(Unit)。每个单元具备完整的业务功能,包含独立的数据、服务和部署环境,能够独立对外提供服务。每个单元包含完整的数据和服务,不依赖其他单元即可完成业务闭环。单元化架构已成为超大规模系统的关键设计模式,需结合具体业务特点设计划分策略,并通过自动化工具降低运维复杂度。数据按特定规则(如用户ID哈希、地理位置)划分到不同单元,避免跨单元数据访问。单个单元故障不影响其他单元,可通过流量切换快速恢复服务。
2025-10-20 11:00:20
545
原创 三地两中心架构介绍
三地两中心是一种高可用灾备架构设计模式,通过地理分布确保业务连续性。核心思想是在三个地理位置部署两个数据中心(主备或双活),结合冗余设计防范区域性灾难。
2025-10-20 10:57:35
495
原创 deployment 字段详解及示例
selector 用于匹配管理的 Pod,必须与 template.metadata.labels 一致。metadata 包含 Deployment 的元数据信息,如名称、命名空间、标签等。minReadySeconds 指定新创建的 Pod 在就绪后必须运行的最小秒数。spec 定义了 Deployment 的期望状态,包括副本数、选择器、模板等。template 定义了 Pod 的模板,包括 metadata 和 spec。status 显示了 Deployment 的当前状态,由系统自动生成。
2025-10-17 16:16:39
397
原创 sql转prometheus指标神器:query-exporter
query-exporter 是一个开源工具,用于将 SQL 数据库查询结果转换为 Prometheus 可识别的指标格式。它通过配置文件定义 SQL 查询和对应的指标映射规则,周期性执行查询并将结果导出为 Prometheus 的/metrics端点。
2025-10-17 14:26:29
273
原创 架构设计:如何画好架构图
在开始绘制架构图之前,需明确其用途和受众。技术架构图可能面向开发团队,需包含详细的技术组件和交互逻辑;业务架构图可能面向管理层,需突出业务流程和关键节点。将系统划分为清晰的层次(如表现层、业务逻辑层、数据层)和模块,避免过度复杂化。每层或模块用明确的边界(如方框、虚线)标识,并标注职责。避免过多细节堆砌,可通过多级视图(如总览图+子模块详图)分解复杂度。确保风格统一(如颜色、线型、字体),并添加图例说明符号含义。完成后与团队或利益相关者评审,检查是否准确反映系统设计,并根据反馈调整。
2025-10-17 10:29:28
701
原创 架构设计基本原则
关系型数据库(MySQL/PostgreSQL)适合事务性操作,NoSQL(MongoDB/Cassandra)适合灵活模式或高吞吐场景。使用ELK(Elasticsearch+Logstash+Kibana)或Fluentd集中管理日志,设置错误日志告警。定期全量备份加增量备份,结合日志(如MySQL Binlog)实现时间点恢复。多节点部署避免单点故障,结合负载均衡(如Nginx、Kubernetes Service)自动分流。模块内部元素紧密相关(高内聚),模块间依赖尽可能少(低耦合)。
2025-10-17 10:28:07
243
原创 容灾架构术语:RPO和RTO
RPO(Recovery Point Objective)指业务系统在灾难发生后可容忍的数据丢失量,通常以时间为单位衡量。例如,RPO为1小时表示系统最多允许丢失1小时内产生的数据。RPO直接影响备份频率,较短的RPO要求更频繁的数据备份或同步。RTO(Recovery Time Objective)指灾难发生后,业务系统恢复到可接受状态所需的最大时间。例如,RTO为4小时表示系统需在4小时内恢复服务。数据丢失风险窗口 ( W = \text{实际RPO} - \text{设计RPO} )
2025-10-17 10:13:17
587
原创 可用性指标:SLI、SLO、SLA介绍
SLA是面向用户或上下游的正式承诺,包含未达标的补偿条款。SLI是量化服务可用性的核心指标,通常以百分比形式表示。SLO是SLI需达成的具体目标值,通常设定为一段时间内的阈值。SLI需与业务场景绑定,例如电商服务的核心SLI可能是下单成功率。“月度服务可用性低于99.9%时,客户可获得10%月度费用抵扣。SLO需平衡用户体验与成本,过于宽松或严格均不适宜。
2025-10-17 10:11:37
417
原创 架构术语:什么是东西流量和南北流量
东西流量指数据中心或网络内部服务器、服务之间的横向通信流量,通常发生在同一网络层级或集群内。例如,微服务之间的API调用、数据库与应用服务器的交互、虚拟机之间的数据传输等。由于现代分布式架构(如Kubernetes集群、微服务)的普及,东西流量占比显著增加,需依赖负载均衡、服务网格(如Istio)和内部防火墙策略进行管理。南北流量指数据中心与外部网络之间的纵向通信流量,例如用户通过互联网访问Web服务器、云服务API的请求等。这类流量经过网络边界设备(如网关、防火墙、CDN)进行过滤和路由。
2025-10-16 18:13:50
830
原创 架构术语:什么是带内和带外管理
带内管理是指通过设备本身的业务网络进行管理操作。管理数据与业务数据共享同一网络通道,依赖于现有的网络基础设施进行通信。常见方式包括通过SSH、Telnet、HTTP/HTTPS等协议访问设备的管理界面。带外管理使用独立的专用通道进行管理操作,与业务网络完全分离。典型实现方式包括串口控制台(Console)、专用管理网口(如iLO、iDRAC)、或独立的带外管理设备(如智能PDU)。
2025-10-16 18:12:37
524
原创 linux ssh config详解
服务器端配置需要管理员权限修改,客户端配置仅对当前用户生效。设置服务器向客户端发送保活消息的间隔(秒),防止连接超时。限制 SSH 服务监听的 IP 地址。通过合理配置 SSH,可以显著提升安全性和使用便捷性。建议禁用密码登录,改用密钥认证。是否允许 root 用户直接登录。指定 SSH 服务监听的端口号,默认是。限制允许登录的用户,多个用户用空格分隔。设置单个连接的最大认证尝试次数。定义主机别名,用于简化连接命令。指定自定义的已知主机文件路径。客户端配置无需重启,直接生效。指定用于认证的私钥文件路径。
2025-10-15 10:16:02
479
原创 k8s二次开发必备技能
掌握以上内容后,可针对特定场景(如自动化运维、AI 调度等)进行深度定制开发。建议从修改小型 Controller 或开发简单 Operator 开始实践。Kubernetes 及周边生态项目(如 Operator、CRD 等)主要使用 Go 语言开发。
2025-10-15 10:14:49
498
原创 linux iptables介绍
iptables是Linux内核集成的防火墙工具,用于管理网络数据包的过滤、网络地址转换(NAT)和端口转发。它通过规则链(chains)和表(tables)组织规则,实现对网络流量的控制。
2025-10-14 15:47:02
427
原创 k8s nginx ingress介绍
Nginx Ingress 是 Kubernetes 中基于 Nginx 的 Ingress 控制器,用于管理集群内外部流量的路由规则。它将外部请求路由到集群内不同的服务,支持基于域名、路径等规则的灵活配置。
2025-10-13 10:07:50
577
原创 linux systemd介绍
systemd 是 Linux 系统中的一个初始化系统和服务管理器,用于替代传统的 SysVinit。它负责系统启动过程中的服务管理、进程跟踪、日志记录等任务,具有并行启动、依赖管理、按需启动等特性。
2025-10-13 10:06:08
288
原创 一文读懂linux的权限管理
是 Linux 系统中用于管理文件扩展属性的工具,主要用于设置或查看文件的特殊权限,这些权限不受传统。通过合理使用这些工具,可以增强文件的安全性和可控性。用三位八进制数表示权限,每位数是。计算方式:目录权限为。
2025-10-11 11:06:04
787
原创 Linux一切皆文件的意义
Linux系统中“一切皆文件”的设计理念,意味着将硬件设备、进程、网络连接等抽象为文件形式进行统一管理。这种设计简化了系统操作,提高了灵活性和一致性。这种设计使得Linux系统组件之间保持低耦合,开发者可以用相同的思维模式处理不同资源,极大降低了学习曲线和开发复杂度。管道(pipe)、套接字(socket)等IPC机制通过文件描述符实现。所有资源(如设备、数据、管道等)通过文件描述符访问,使用相同的系统调用(如。文件权限模型(rwx)自然延伸到所有资源。硬件设备被映射为虚拟文件。内核通过虚拟文件系统(如。
2025-10-11 10:57:40
531
原创 linux常用系统诊断工具介绍
Linux性能分析工具,可监控CPU缓存、系统调用等。实时显示系统资源使用情况,包括CPU、内存、进程负载等。,支持彩色显示、鼠标操作和直观的进程树视图。报告虚拟内存、进程、CPU活动等统计信息。显示网络连接、路由表、接口统计等。查看目录或文件占用空间大小。查看systemd日志。显示磁盘空间使用情况。的替代工具,速度更快。
2025-10-10 14:58:03
562
原创 TLS在Kubernetes中的作用
TLS对Kubernetes组件间的数据传输进行加密(如API Server与kubelet、etcd等),防止中间人攻击或数据泄露。例如,所有API请求默认通过HTTPS(基于TLS)传输。TLS(Transport Layer Security)在Kubernetes中用于保障集群内外的通信安全,确保数据在传输过程中加密且身份可信。Kubernetes使用TLS双向认证(mTLS)确保只有持有有效证书的实体才能访问集群资源。通过TLS,Kubernetes构建了安全的通信框架,是集群安全性的基石之一。
2025-10-10 14:51:34
629
测试一下请问你是AI答题者吗
2025-09-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅