- 博客(127)
- 收藏
- 关注
原创 00-全景导读-一家会自动补货的工厂
Kubernetes 不是「帮你启动容器的工具」,而是一座会自动补货的工厂:你只在工单上写「要生产 3 箱、用这个配方」,工厂自己安排车间、工人和物流,并且一旦哪里出问题,会自己把人补上、把货重做。容器像租一个房间,水电(宿主机内核)是共享的,只是房间有门禁、有额度。一句话:LXC 提供了技术,Docker 提供了体验,containerd 提供了标准,K8s 提供了调度全局的大脑。地图有了,下一篇从最底层开始:容器这间「房间」的门禁和额度,究竟是怎么装上的。组件是「谁干活」,对象是「你要什么」。
2026-11-05 00:15:00
180
原创 口播稿-9分钟看懂Kubernetes底座
他的逻辑跟空调恒温器一模一样:读你设定的温度,读当前室温,比较,然后制冷或加热,过一会儿再看一次。你有没有想过:你在终端敲下 kubectl apply,屏幕上只跳出三个字——created,然后过了几秒,一个 Pod 变成 Running。因为决定权在过半:3 台能坏 1 台,5 台能坏 2 台,4 台也只能坏 1 台——多养一台,抗故障能力没变,不划算。所以看到容器的退出码是 137,别怀疑人生:137 就是 128 加 9,9 是 SIGKILL,翻译过来就是「被杀了」。最上面是主菜,你的程序。
2026-11-04 06:00:00
116
原创 一次 kubectl apply 到底发生了什么?六阶段全链路拆解(底座认知 08·讲解篇)
03:kubectl apply 之后那几秒发生了什么?apiserver 三道关、控制器展开、调度绑定、kubelet 建容器、kube-proxy 写规则,六阶段逐段拆解,附按阶段定位的排障表。
2026-11-04 00:45:00
145
原创 第 08 篇:一次 kubectl apply 的完整旅程:从命令行到容器落地的六阶段链路(底座认知 08)
建议实践:在实验集群上用 kubectl apply 创建 Deployment,结合 kubectl describe、kubectl get events、crictl ps 等命令,亲自观察每个阶段的状态流转。kube-scheduler 监听到新的未调度 Pod,执行 Filter → Score → Bind,把 Pod 绑定到选定节点,绑定结果写回 etcd。若 Pod 暴露了 Service,kube-proxy 会更新 iptables/ipvs 规则,使流量能够转发到新 Pod。
2026-11-03 07:45:00
305
原创 第 07 篇:数据面双雄:kubelet 管生命周期,kube-proxy 管网络转发(底座认知 07)
在节点上修改 Service 后,iptables 或 ipvs 规则会随之更新,将发往 Service VIP(虚拟 IP)/ClusterIP 的流量转发到后端 Pod。kubelet 是运行在每个节点上的核心代理,负责把节点纳入集群并管理其上的 Pod 生命周期。它通过 CRI(容器运行时接口) 与容器运行时(containerd)通信。kube-proxy 运行在每个节点上,负责实现 Service 的流量转发与负载均衡,让集群内外的请求能够访问到后端的 Pod。
2026-11-03 00:30:00
191
原创 Pod 为什么是最小调度单元?pause 容器到底在干什么(底座认知 03·讲解篇)
02:K8s 为什么不直接调度容器?Pod 里的 pause 容器到底在干什么?本文从共享网络与同生共死的需求讲起,拆解 pause 持有命名空间的原理、共享边界与四种协作模式。
2026-11-02 07:30:00
550
原创 第 06 篇:调度与收敛:kube-scheduler 两阶段调度与 controller-manager 的 Reconcile 循环(底座认知 06)
scheduler(调度器)与 controller-manager(控制器管理器)同属控制面,但分工明确:调度器决定「新 Pod 放到哪个节点」,控制器管理器负责「持续把集群状态拉回期望状态」。排障常看:Pod 长时间 Pending,多半是 Filter 阶段没有可用节点,可用 kubectl describe pod 查看调度事件。K8s 的核心哲学是「声明式 + 控制器循环」:用户声明期望状态,控制器持续对比「期望」与「当前」,并采取行动使二者收敛。
2026-11-02 00:30:00
344
原创 第 05 篇:etcd 深入:Raft 共识、watch 机制与快照备份恢复实战(底座认知 05)
etcd 是一个高可用的分布式键值存储,是 Kubernetes 集群的「唯一事实来源」(source of truth)。灾难恢复时,通过 snapshot restore 生成新 etcd 数据目录,再以恢复后的数据重新启动集群。etcd 支持事务操作(compare-and-swap),可对多个键做原子性读改写,避免竞态。etcd 提供租约(lease)与分布式锁能力,K8s 的 leader 选举(如 controller-manager 选主)即基于此实现。
2026-11-01 07:00:00
224
原创 第 04 篇:kube-apiserver:集群唯一网关的认证、授权与准入三道关卡(底座认知 04)
kube-apiserver 是整个集群的「大脑中枢」与「唯一网关」。集群内所有组件的通信、所有用户/管理工具的请求,都必须经过它,不存在旁路。journalctl -u kube-apiserver -f:查看 apiserver 日志。etcd:只有 apiserver 能直接读写 etcd,其他组件均绕行 apiserver。任何请求进入 apiserver,都要依次通过三道关卡,全部通过才会真正作用于集群状态。正因如此,apiserver 是认证、授权、准入控制的集中执行点,也是安全加固的核心。
2026-11-01 00:15:00
370
原创 容器到底是什么?一个「被隔离的普通进程」,讲透 Namespace 与 cgroup(底座认知 01·讲解篇)
01:容器不是小虚拟机,而是宿主机上一个被 Namespace 隔离、被 cgroup 限制的普通进程。本文讲透六种命名空间、cgroup v2 驱动坑、OOMKilled 137 与 QoS 排序,并给出可验证的命令。
2026-10-31 07:30:00
489
原创 一张图看懂 Kubernetes:控制面与数据面到底谁管什么(底座认知 00·讲解篇)
00:K8s 组件太多记不住?先建立一张地图:控制面四组件各管什么、数据面各管什么、日常就那几个核心对象,以及一次部署里谁先谁后。看完再进细节,不容易迷路。
2026-10-31 00:00:00
499
原创 第 03 篇:为什么 K8s 的最小调度单元是 Pod 而不是容器:pause 容器与边车模式(底座认知 03)
每个 Pod 都会有一个 pause(沙箱)容器,它是整个 Pod 的「骨架」:负责持有 Pod 级别的网络命名空间、IPC、UTS 等,业务容器共享它创建的这些资源。Pod 自身的状态包括 Pending(等待调度)、Running(运行)、Succeeded(正常退出)、Failed(异常退出)、Unknown(状态未知)。Pod 才是 K8s 的最小调度单元。在业务容器之前按顺序运行的初始化容器,用于做环境准备(等待依赖、初始化配置、权限校验),完成后退出。Pod 内承载实际业务的容器,是核心负载。
2026-10-30 07:00:00
449
原创 第 02 篇:镜像分层与 containerd 2.x 实战:SystemdCgroup 与 pause 镜像配置踩坑(底座认知 02)
containerd 2.x 中,Pod 沙箱(pause)镜像配置在 pinned_images.sandbox 字段,而不是 1.x 的 sandbox_image 字段。K8s 1.24 起默认不再需要 Docker 作为运行时,主流运行时是 containerd 与 CRI-O。容器对文件系统的任何修改都写在这层,镜像本身保持不可变——这正是「一个镜像能同时启动多个互不影响容器」的关键。containerd 的职责分为两大块:一是管理镜像(拉取、存储、解包),二是通过 shim 管理容器生命周期。
2026-10-30 00:15:00
325
原创 第 01 篇:容器的本质:Namespace 隔离与 cgroup 限制,OOMKilled 137 的完整链路(底座认知 01)
完整链路:容器内存使用量超过 cgroup 内存上限 → cgroup 无法再分配内存 → 内核 OOM Killer 介入,把超限容器进程杀掉(SIGKILL)→ K8s 检测到容器退出,状态记为 OOMKilled。它的本质是:一个运行在宿主机上的普通进程,只是被操作系统施加了两类机制,从而呈现出「独立」的外观。这意味着:隔离让容器「像独立机器」,限制让容器「吃不下超出的资源」,二者结合才形成可安全共存的资源环境。命名空间(Namespace):让进程「看不到」宿主机的其他资源,实现隔离。
2026-10-29 06:15:00
891
原创 第 00 篇:一张地图看清容器与 Kubernetes:控制面、数据面与核心对象全景(底座认知 00)
今天 K8s 关注的已不只是「跑容器」,而是整个分布式应用的全生命周期:调度、弹性、存储、网络、安全、发布、自愈。容器是 K8s 承载的「最小积木」,但 K8s 的管理单元是更高一层的 Pod。容器通过操作系统层面的隔离,将应用连同其依赖打包成一个可移植的单元,从根源上解决了「在我机器上能跑」的难题。Kubernetes(常简称 K8s,因 K 与 s 之间有 8 个字母)是一个开源的容器编排平台,核心价值是:声明式地描述期望状态,并持续驱动实际状态向其收敛。控制面负责「决策」,数据面负责「执行」。
2026-10-29 00:30:00
797
原创 CDH第八篇:CDH 部署排错手册(系列收官):一张表解决 7180 打不开、Parcel 失败、Kafka 起不来
目录一、为什么你的 CDH 总是装不好二、6 类高频故障排查表三、通用定位三步法四、三大易错细节(占故障大半)五、全系列回顾与索引六、结语一、为什么你的 CDH 总是装不好复盘大量部署案例后会发现:CDH 故障极少是"玄学",几乎全部源于环境准备遗漏、介质细节出错、资源不足这三类人为因素。也就是说,绝大多数故障可以靠一张表 + 一个方法论定位。二、6 类高频故障排查表。
2026-10-28 08:15:00
254
原创 CDH第七篇:CDH 集成 Kafka 实战:CSD + Parcel 组合拳,先装 ZooKeeper 是铁律
目录一、为什么 Kafka 要"外挂"进 CDH二、集成前必懂:CSD 与 Parcel 的分工三、4 步完成 Kafka 集成四、小内存救命调参:Broker 堆改 256M五、功能验证:建 Topic 收发消息六、结语与系列预告一、为什么 Kafka 要"外挂"进 CDH在物联网架构案例里,海量设备上报数据先打进消息队列削峰,再落存储、进计算。Kafka 是这一层的标准选择。但CDH 5.9 的官方组件清单里没有 Kafka。
2026-10-28 00:15:00
282
原创 CDH第六篇:Web 向导装集群:手把手带你点出 HDFS/YARN/Hive/Oozie
目录一、向导总览:7 个页面走完一个集群二、逐屏实操详解三、安装慢/卡住的正确姿势四、装完后的第一轮健康检查五、常见问题速查六、结语与系列预告一、向导总览:7 个页面走完一个集群登录 http://192.168.9.233:7180(admin/admin),首次进入会自动弹出集群安装向导,流程为:欢迎页 → 集群命名 → 选节点 → 选存储库 → Parcel 分发激活→ 环境检查 → 选服务套件 → 数据库配置 → 审核 → 启动完成。
2026-10-27 10:00:00
191
原创 CDH第五篇:Cloudera Manager 5.14 离线安装全流程:从解压到打开 7180 控制台
目录一、离线安装的整体思路二、7 个步骤完整实操三、.sha1 改名 .sha:最著名的坑四、启动与控制台验证五、常见报错与排错六、结语与系列预告一、离线安装的整体思路CM 离线安装的逻辑链是:CM 主程序解压 → 告诉 CM 用哪个数据库(scm 库)→ 所有节点装 Agent→ master 搭 Parcel 本地仓库 → 启动 Server + Agent → 浏览器进 7180所有节点操作分工只有两类:master 全做,从节点只装 Agent。
2026-10-27 00:30:00
400
原创 CDH第四篇:CDH 元数据库实战:MySQL 5.7.22 二进制安装 + 三库三账号授权全记录
目录一、CDH 为什么离不开 MySQL二、步骤 1:清理 MariaDB 冲突三、步骤 2:二进制方式安装 MySQL 5.7.22四、步骤 3:三库三账号授权五、常见报错与排错六、结语与系列预告一、CDH 为什么离不开 MySQLCM 体系里有三类元数据都要落库:元数据 存储库 访问账号CM Server 自身配置、主机清单、监控历史 cm 库 scmHive 元数据(表结构、分区、列) hive 库 cdh。
2026-10-26 11:15:00
309
原创 CDH第三篇:CDH 环境准备 7 步实战:防火墙、NTP 时间同步、SSH 免密、内核参数一次配对
目录一、为什么环境准备是 CDH 部署的生死线二、7 个步骤逐个击破(含验证)三、CM 环境检查与本文步骤的对应关系四、常见报错速查五、结语与系列预告一、为什么环境准备是 CDH 部署的生死线CM 的 Web 向导在安装集群前会做一轮环境检查,任何一项不合格都会阻断流程。而检查项里的绝大多数问题——时间不同步、swap 没关、透明大页没禁——都来自环境准备阶段的遗漏。更隐蔽的是:有些配置临时执行一次能通过检查,服务器一重启就复原,故障隔天复现。
2026-10-26 00:30:00
508
原创 CDH第二篇:部署 CDH 前必看:三节点集群规划、内存红线与安装介质清单
7 jdk-8u171 / mysql-5.7.22 / mysql-connector-java-5.1.46 基础组件 master。3 CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel.sha1 Parcel 校验文件 同上(要改名)2 CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel CDH 本体 parcel-repo 仓库。/opt/cloudera/parcel-repo/ # Parcel 本地仓库(仅 master)
2026-10-25 07:00:00
83
原创 CDH第一篇:别再裸装 Hadoop 了!CDH 从入门到精通(一):为什么大厂都在用发行版
很多人第一次搭 Hadoop 集群都是这个剧本:照着官网装 Hadoop 2.x,装 Hive 的时候发现版本对不上,装 HBase 提示 Guava 冲突,改了一晚上 jar 包,最后 NameNode 起不来。Parcel 是 CDH 特有的软件包格式,一个 Parcel 里包含了编译好的可执行程序、配置文件和依赖库。Hadoop、Hive、HBase、ZooKeeper、Spark 各自独立发版,依赖冲突、接口变动、协议不匹配,全都要运维人员自己排查。不依赖外网,分发速度快、版本完全可控。
2026-10-25 00:15:00
303
原创 大数据第六篇: DBeaver 连接成功却看不见表?HBase 图形客户端 PQS 的空 schema 坑全解析(系列最终篇)【PQS + DBeaver】
系列主题关键收获一Hadoop 3.3.6 三节点部署小内存 MR 参数、scp 属主坑二HBase 2.5.16 部署wal.provider 救 HMaster、启动顺序三千万行导入行键两种打散、并行度红线四jar 事故复盘服务端保留、客户端绕开五Phoenix 集成协处理器下推、SALT_BUCKETS 权衡六thin 网关、空 schema 坑、systemd 托管。
2026-10-24 08:15:00
620
原创 大数据第五篇:让 HBase 说 SQL:Phoenix 5.3.2 集成实战,千万行 COUNT 从 88 秒跑到 25 秒【Phoenix 集成】
Phoenix 解决的是"人会写 SQL,不想背行键"的问题:点查和聚合快了一个量级,代价是前缀扫描从单命中变 16 路并行、以及每次查询都依赖 SQL 引擎。到这一步,命令行用 SQL 管数据已经够了——但要是想用图形界面点一点就能查呢?下一篇(最终篇)预告:《系列六:PQS + DBeaver——连上了却看不见表?空 schema 坑全解析》。
2026-10-24 00:45:00
351
原创 大数据第四篇:事故复盘:移走 HBase 里 27 个 hadoop-2.10.2 jar 后,HMaster 半小时后“自杀“了【jar 事故复盘】
这次事故最值得记住的不是那个 NoSuchMethodError,而是"验证通过"的假象是怎么造成的:验证范围 ≠ 影响范围,观察窗口 < 触发延迟。以后再想清理任何"看着不顺眼"的依赖 jar 前,先问一句:这个 jar 的字节码,到底在服务端哪些路径上被调用?下一篇预告:《系列五:Phoenix 5.3.2 集成——让 HBase 说 SQL,千万行 COUNT 从 88 秒到 25 秒》。
2026-10-23 08:45:00
384
原创 大数据第三篇:千万行数据灌进 HBase 要多久?ImportTsv 与 psql.py 双路线实测(附小内存并行度红线)【千万行导入】
两条路线的选择标准很简单:一次性大批量灌数用 ImportTsv(快 8 倍,但得绕 jar 坑);表是 Phoenix 建的、或要增量补数,用 psql.py(慢但省心)。比速度更重要的是并行度红线——千万行导入不是性能竞赛,把集群跑挂就得全部重来。下一篇预告:《系列四:事故复盘——移走 27 个 hadoop-2.10.2 jar 后,HMaster 自杀了》。
2026-10-23 00:30:00
222
原创 大数据第二篇:HBase部署,HBase起不来自查指南:Rocky 9 三节点 HBase 2.5.16 部署实战,wal.provider 一行配置救活 HMaster
上一篇文章(Hadoop 3.3.6 三节点部署)已经把底座搭好了:hadoop1/hadoop2/hadoop3 三台 Rocky 9 虚拟机,NameNode/ResourceManager 在 hadoop1。本文在这套集群之上安装 HBase,让它管理 HDFS 上的数据。项目值部署主机操作系统Rocky Linux 9(每台 2 核 / 2~4G 内存)Hadoop3.3.6(已部署并验收)HBase2.5.16(hadoop2 发行版JDK运行用户。
2026-10-22 08:30:00
149
原创 大数据第一篇:别再照教材装 Hadoop 了!Rocky 9 + Hadoop 3.3.6 三节点完全分布式部署实战(2G 小机亲测跑通 WordCount)
很多同学的第一门大数据课用的是 Hadoop 2.6.5 的教材,一上手实机就发现处处对不上:端口变了、配置文件变了、连下载链接都挂了。本文以Hadoop 3.3.6(2026 年 USTC 镜像仍在维护的稳定版)为目标版本,在 Rocky Linux 9 上完成三节点完全分布式部署,并用官方 WordCount 例子做全链路验收。项目值部署主机操作系统Rocky Linux 9(每台 2 核 CPU / 2G 内存)JDK。
2026-10-22 00:15:00
1124
原创 Hadoop第八篇:AI 上生产服务器,怎么管才不会出事:团队安全落地指南
篇内容对应能力1总览与上手会聊天2多主机值守告警会盯夜3Ollama 离线部署数据不出门4MySQL 体检会巡检5多模态看图会看图6Windows/网络设备/容器管得宽7SFTP 批量下发改得稳8安全落地(本篇)管得住AI 不会取代运维工程师,但它会重新划分这道分界线:重复劳动归它,判断和责任归你。把权限体系、留痕体系、复盘机制搭好的人,和拒绝这一切、继续半夜手敲命令的人,两年后会在完全不同的工作状态里。系列完结。
2026-10-21 11:00:00
328
原创 Hadoop第七篇:十个窗口来回切的时代结束了:SFTP 多主机批量编辑与配置灰度下发
— 系列第七篇:改配置、发文件、批量推送、灰度验证,一条指令完成且全程留痕本篇定位:批量改配置是运维最日常也最容易翻车的活——十个 SSH 窗口来回切,改到一半忘了改到哪台。这篇讲 AI SSH 运维 Agent 的SFTP 多主机并行编辑:先拉取、再修改、灰度推、全量推、验证、留痕,一套流程讲透,指令全部照抄。
2026-10-21 00:30:00
559
原创 Hadoop第六篇:Windows 服务器、交换机、Docker 全接入:AI SSH 运维 Agent 的“非 Linux”玩法
— 系列第六篇:以 SSH 为底的操作中枢。Windows / 网络设备 / 容器 / 中间件接入实战,附接入清单本篇定位:名字里带 SSH,但能管的不只是 Linux。这篇把Windows 服务器、交换机/防火墙、Docker 主机、常见中间件四类设备的接入方法和巡检剧本一次讲全,每类都给可照抄的指令。
2026-10-20 06:00:00
446
原创 Hadoop第五篇:截图丢给 AI 就能排障:多模态看图在运维里的 6 种真实用法
— 系列第五篇:监控截图、报错弹窗、架构拓扑,图片也是可以理解的运维资产本篇定位:运维世界的知识一半在文字里,另一半在截图里——zabbix 面板、报错弹窗、交接时留下的拓扑图。这篇讲怎么把图片直接"喂"给 AI SSH 运维 Agent,让多模态能力落地成 6 种真实用法,每种都给出可直接照抄的指令。
2026-10-20 00:30:00
453
原创 Hadoop第四篇:把 DBA 的巡检清单变成一键体检:AI SSH 运维 Agent 实战 MySQL 篇
— 系列第四篇:主从、慢查询、锁、备份、磁盘,一份体检剧本全查完,报告自动生成本篇定位:DBA 巡检清单里那几十项检查,过去要开四五个窗口敲半天。这篇把主从复制、慢查询、锁等待、备份有效性、磁盘水位五大模块做成一份 AI 巡检剧本,一句话触发,报告自动生成,命令全部可照抄。
2026-10-19 08:15:00
812
1
原创 Hadoop第三篇:内网服务器不能出公网?用 Ollama 本地模型,AI 运维照样跑
— 系列第三篇:数据不出门的大模型方案。Ollama 选型、安装、接入 AI SSH 运维 Agent 全流程,含显存对照表本篇定位:很多公司的运维网是物理隔离的,云端大模型 API 根本通不了。这篇讲清楚怎么用Ollama在内网跑本地模型,接入 AI SSH 运维 Agent,实现数据零出门的 AI 运维。从显存选型到接入验证,照抄即可。
2026-10-19 00:30:00
1069
原创 Hadoop第二篇:别再一封一封翻告警邮件了:AI SSH 运维 Agent 多主机值守实战
— 系列第二篇:十几台机器怎么盯?抖动过滤、三路告警、AI 预判,一套配全本篇定位:上一篇讲了 AI SSH 运维 Agent 是什么、怎么上手。这一篇只解决一件事——人盯不过来的机器,交给它盯。从录入主机、写巡检规则,到抖动过滤、三路告警、事后回溯,全流程照抄即可。
2026-10-18 07:00:00
418
原创 Hadoop第一篇:告别 midnight 报警:我用一个 AI SSH 运维 Agent,把十几台服务器的活儿干完了
从ssh手敲命令,到ansible批量剧本,再到今天"说人话就能运维"的 AI Agent,运维这条路的每一次进化,方向其实都一样:把人从重复劳动里解放出来,把人的判断力留给真正需要判断的事。半夜被告警叫醒的次数不会因此变成零,但每一次醒来时,你面前的不再是一屏天书日志,而是一份带着初步诊断和建议动作的报告——这就值回票价了。建议你现在就下载试用,把最烦的那台老服务器丢给它,看看它交回来的第一份巡检报告。本文为「AI SSH 运维 Agent」系列第 1/8 篇。
2026-10-18 00:30:00
297
原创 OpenStack 部署记录(八):多节点部署执行、验证与排障(完结篇)
项目值拓扑执行节点仅 controller耗时约 40~90 分钟本篇目标完成部署、验证"协同”、建立多节点排障思路,并给整个系列收尾上篇回顾:(七)多节点部署:环境准备与应答文件——三台机器基础环境就绪、免密打通、应答文件三行关键配置检查完毕。篇主题关键收获(一)入门概览与选型组件分工与调用链;学习用 Packstack、生产用 Kolla-Ansible(二)单机环境准备六块地基 + 6 个坑伏笔;CentOS 7 EOL 的内网源方案(三)一键部署与验证。
2026-10-17 08:45:00
103
原创 OpenStack 部署记录(七):多节点部署——环境准备与应答文件
项目值目标拓扑1 台 controller + 2 台 computecontroller10.10.10.160(同时承担网络节点角色,建议 ≥ 8G 内存 / 50G 磁盘)10.10.10.161 / 10.10.10.162(建议 ≥ 4G 内存)系统Train 必须 CentOS 7;Ussuri 起用 CentOS 8)内网 yum耗时约 40~90 分钟上篇回顾:(六)运维脚本:健康检查与巡检——单机环境已运维熟练,本篇开始扩展拓扑。
2026-10-17 00:45:00
373
原创 OpenStack 部署记录(六):运维脚本——健康检查与九大项巡检
项目值环境10.10.10.160 单机(CentOS 7.9 + Train + OVN)实测通过使用前提先建议存放存为后chmod +x巡检日志上篇回顾:(五)单机故障排查实录——273 字节镜像坑的完整定位与修复,以及通用排查起手式。本篇把前五篇的排障经验“反刍”成两个可长期复用的脚本。排查事故时最贵的成本是“想起来该查什么”,巡检脚本的价值就是把这个记忆固化成每天一分钟的例行确认。
2026-10-16 09:30:00
291
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅