自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

liu_chen_yang的博客

主修与云计算领域,代表专栏有《Linux从入门到精通》《docker从入门到精通》《Linux监控》《自动化运维》《Mysql从入门到“跑路”》《kubernetes入门到精通》等等;文章内容主要来源于实战,感谢大家的支持,我们一起进步!

  • 博客(262)
  • 资源 (9)
  • 问答 (1)
  • 收藏
  • 关注

原创 【Docker】完美解决拉取镜像超时报错:ERROR: Get https://registry-1.docker.io/v2/

因为我们下载的镜像是外网的镜像资源,所以下载的速度会非常的慢,甚至大概率下载时会报错,所以需要我们配置一个国内的服务器镜像地址,国内服务器镜像地址有很多,这里咱们就说一下阿里镜像加速器的配置方法。

2023-02-20 09:25:17 125323 120

原创 省级水利数字化转型攻坚:河北数字孪生平台平稳运行,核心指标全面达标

省级水利数字化转型攻坚:河北数字孪生平台平稳运行,核心指标全面达标

2026-06-19 09:45:00 16

原创 KingbaseES PDML 并行处理实战:跑批效率从“单核独挑”到“多核共赢”,性能飙升 74%

摘要: 国产数据库金仓KingbaseES(KES)针对金融、政务等核心业务中的批处理性能瓶颈,推出PDML(并行DML)技术,尤其是GMQ(全领域并行)模型,实现多核CPU资源的极致利用。通过实际银行案例(1.7亿行数据处理)分析,传统串行模式导致32核CPU仅单核满载,耗时数小时;而启用GMQ后,查询与写入全链路并行化,结合WAL调优和并行Hint控制,性能提升最高达74%,索引维护效率提升4倍以上。KES的PDML通过智能安全检测(如自动规避触发器、外键约束风险)和共享组锁机制,保障高并发下的数据一致

2026-06-18 16:25:21 8389

原创 笔记越记越乱?我用PandaWiki把碎片资料变成了随叫随到的AI助手

笔记越记越乱?我用PandaWiki把碎片资料变成了随叫随到的AI助手

2026-06-18 10:02:39 3099 11

原创 这本讲故事的数学科普书里,藏着AI背后的底层密码

摘要: 哥德尔不完备定理揭示了AI的终极边界:任何数学系统无法同时满足自洽与完备性,导致AI存在不可判定的命题且无法自证无矛盾。尽管AI已能辅助数学研究(如破解Potts模型),但其底层逻辑仍受限于数学框架。《数学之美:数字革命背后的底层逻辑》一书以通俗语言解析信息、计算、AI的数学基础,适合大众理解。文末提供赠书福利,点击链接参与抽奖。 关键词: 哥德尔定理、AI局限性、数学之美、停机问题、赠书活动

2026-06-17 13:17:46 9210 24

原创 数据库越来越慢,我却一直找不到原因——直到装上Postgres Exporter找到了原因

PostgreSQL性能监控方案:Postgres Exporter部署指南 摘要:本文介绍了如何通过Postgres Exporter实现对PostgreSQL数据库的全面监控。Postgres Exporter作为Prometheus与PostgreSQL之间的桥梁,能够自动采集数百项关键指标(连接数、查询性能、缓存命中率等),帮助运维人员快速定位数据库性能问题。文章详细讲解了CentOS7环境下Postgres Exporter的安装步骤、监控用户权限配置方法,以及如何将Exporter配置为系统服务

2026-06-11 13:12:04 10608 26

原创 一本书读懂微积分!

《微积分之美》是一本颠覆传统数学教育的科普书,由300万粉丝数学大V侯丹撰写。作者通过可视化讲解和通俗语言,揭示微积分的底层逻辑与天才思维,解答学生时代遗留的"为什么"。书中不仅解析欧拉公式、莱布尼茨构造等核心概念,还融入心形曲线等趣味故事,帮助读者建立真正的数学思维。该书配套作者全网播放2亿的科普视频,实现多元化学习,特别适合想理解AI算法底层逻辑的读者。文末附赠抽奖活动,参与评论即有机会获赠这本被誉为"理想数学教材"的著作。(149字)

2026-06-10 07:00:00 10917 16

原创 全维度拆解具身智能:底层技术 + 实战落地+ 全球产业竞争

《一本书讲透具身智能》深度解析人工智能与物理世界的融合革命。本书由机器人专家孔祥战博士撰写,系统梳理具身智能技术架构、产业应用与商业逻辑,涵盖分层大模型、人形机器人等前沿技术,并剖析工业/服务业落地路径。通过波士顿动力、特斯拉Optimus等案例,揭示技术转化与投资趋势,兼具学术严谨性与商业洞察力。获王耀南院士等专家推荐,是贯通理论到实践的指南。附抽奖福利,助力读者把握AI下一浪潮。(149字)

2026-06-09 16:20:42 10440 32

原创 一本书讲透 Agentic AI 核心不踩坑

《一本书讲透 Agentic AI》是企业级AI应用的战略指南,系统梳理Agentic AI的核心概念、技术架构与落地路径。全书围绕认知升级、技术原理、业务应用、组织变革和战略规划五大模块展开,重点厘清AI Agent(执行工具)、Agentic Workflow(协同规则)与Agentic AI(战略范式)的本质区别。书中提供流程自动化成熟度评估、组织数字化能力框架等实用工具,并通过真实案例解析企业从场景识别到规模化部署的全过程。该书强调Agentic AI不是简单的技术采购,而是需要重构业务流程、组织体

2026-06-08 14:37:34 10298 28

原创 数据库挂了服务就瘫?我用PostgreSQL主从流复制搭了高可用架构,cpolar打通远程访问

PostgreSQL高可用配置实践指南摘要 本文详细介绍了在CentOS/Ubuntu系统下搭建PostgreSQL 14高可用主从架构的全流程。主要内容包括: 环境准备:明确主从库服务器要求,确保网络互通和版本一致性 主库配置:修改postgresql.conf开启复制功能,配置pg_hba.conf授权从库访问,创建专用复制用户 数据同步:使用pg_basebackup工具备份主库数据,传输至从库 从库配置:清理原有数据目录,准备接收主库备份 通过WAL日志流复制技术,实现主从库近乎实时的数据同步,当主

2026-06-04 15:24:42 12609 32

原创 从数据到决策:TimechoAI时序大模型使用指南与深度时序分析能力解析

文章摘要: 《TimechoAI时序大模型:工业时序数据分析的革新解决方案》介绍了传统时序分析方法的局限性(如ARIMA和LSTM的数据依赖性强、泛化能力弱)与时序大模型的突破性优势。TimechoAI基于清华大学研发的Timer系列模型,提供零样本预测、多变量协变量支持、概率预测等核心功能,覆盖预测、异常检测、数据填补等场景。其云端服务模式显著降低使用门槛,支持Web界面快速体验和API集成,实测效果在精度和速度上均超越传统方法。文章详细解析了技术架构、核心能力及实战操作指南,为工业智能决策提供高效工具。

2026-06-03 15:08:26 9760 5

原创 《大模型驱动软件测试》| 软件工程3.0时代,大模型驱动测试实战指南

《大模型驱动软件测试》摘要(149字) 本书由朱少民、邢颖合著,系统探讨大模型(LLM)在软件测试全流程的应用创新。全书8章覆盖需求分析、用例生成、脚本开发、非功能测试及管理优化,结合Transformer架构解析与200+实战案例,展现LLM如何提升测试效率。获阿里、华为等专家推荐,兼具理论深度与实践价值,为测试人员提供智能化转型指南。适读人群涵盖测试工程师、技术管理者及AI领域研究者,附赠正版购书链接及抽奖活动。通过技术原理与行业场景的深度结合,助力读者把握软件工程3.0时代的测试变革机遇。

2026-05-27 15:36:33 10222 36

原创 百元N1盒子跑OpenClaw:低成本家庭AI助手从吃灰到榨干实战

摘要 本文详细介绍了如何在N1盒子上部署OpenClaw AI助手系统。通过刷入飞牛OS系统,配置SSH连接,安装Node.js和Git环境,最终完成OpenClaw的安装部署。文章重点讲解了如何选择适合N1盒子的OpenClaw版本,并提供了硅基流动AI平台的接入方法,包括注册、获取API密钥等步骤。整个过程注重实用性和低成本,展示了如何利用百元设备搭建稳定的AI助手系统,实现微信消息驱动AI功能。教程包含详细的操作步骤和截图,帮助读者避免常见问题。

2026-05-25 13:12:15 10875 29

原创 传统数字人 VS 魔珐星云具身数字人,为了么差了端到端交互能力区别这么大?

本文对比分析了传统数字人与魔珐星云具身数字人的核心差异。传统数字人存在交互延迟、表达割裂等问题,依赖拼凑式技术方案,难以实现自然流畅的端到端交互。魔珐星云通过参数流+端侧渲染的底层重构,实现实时、自然的具身交互体验。文章以健康咨询数字人为例,详细拆解了魔珐星云的三层架构设计,并分享了基于其SDK开发的智能健康咨询系统实战案例,展示了从初始化到场景设计的完整实现过程。该方案突破了传统云端渲染的瓶颈,为数字人交互提供了新范式。

2026-05-21 21:04:14 10668 27

原创 用树莓派搭一个弱网模拟网关,让你的应用在2G、高延迟、丢包环境下跑一遍

本文介绍了如何利用树莓派搭建便携式弱网测试环境。通过安装Facebook开源的ATC工具,可以模拟2G/3G/4G等不同网络条件,包括带宽限制、延迟、丢包等参数。文章详细讲解了树莓派无线热点的配置步骤,包括安装hostapd和dnsmasq、设置静态IP、配置NAT转发等关键环节。完成配置后,连接该热点的设备即可通过Web界面实时调整网络参数,无需安装客户端即可测试应用在弱网环境下的表现。这种方案成本低廉且便于携带,是移动应用开发测试的理想选择。

2026-05-18 11:48:28 10784 23

原创 终于蹲到了!“能读一半就是赚到”的《编码》精装版来了

《编码:隐匿在计算机软硬件背后的语言(原书第2版·精装版)》是一本经典计算机入门书籍,由微软MVP查尔斯·佩措尔德撰写,阿里巴巴达摩院院长张建锋翻译。该书从零开始讲解计算机工作原理,涵盖二进制、逻辑门、CPU等核心概念,适合专业人士和零基础读者。第2版精装版更新了CPU相关内容,并配有交互式网站辅助理解。本书以清晰易懂的风格著称,被全球读者广泛好评,现提供抽奖赠书活动。

2026-05-13 09:56:24 11399 36

原创 MariaDB + mysqld_exporter + 内网穿透:Debian 生产级部署与远程穿透指南

MariaDB远程访问解决方案 本文介绍了通过cpolar建立安全隧道实现远程访问MariaDB数据库的完整方案。主要内容包括: 在Debian 12系统上安装配置MariaDB服务器,包括系统升级、添加官方源、安装启动服务等步骤 数据库安全加固措施,包括版本检查、用户权限管理、数据库表操作等基本命令 使用mysqld_exporter+Prometheus搭建数据库监控系统,详细说明exporter的安装配置和权限设置 通过cpolar创建加密HTTPS隧道,将内网数据库3306端口安全映射到公网,实现远

2026-05-11 11:19:48 10146 24

原创 AI原生时序数据库选型指南:从数据存储到智能决策的范式跃迁

AI原生时序数据库选型指南:从数据存储到智能决策的范式跃迁

2026-05-09 14:40:04 9396 6

原创 K8s之负载均衡

protocol: TCP port: 80 targetPort: 80 nodePort: 30080 selector: app: nginx sessionAffinity: None * 创建并运行svc ```bash # 创建并运行svc kubectl apply -f nginx-svc.yaml # 检查svc运行是否正常 kubectl get svc -n nginx 使用NodeIP:NodePort进行测试 # 使用NodeIP:NodePort进行测试 curl -s http

2026-05-07 11:36:31 6238 20

原创 实时与时序的边界正在消失:融合型数据库的工业实践

摘要:实时数据库(RTDB)与时序数据库(TSDB)在数据模型、性能和应用场景上存在显著差异。RTDB以毫秒级延迟处理当前状态更新,适用于SCADA、电力调度等实时控制场景;TSDB则专注于高效存储和查询时间序列数据,支持历史分析和预测性维护。随着技术发展,融合型数据库(如DolphinDB)通过统一架构同时满足实时订阅和历史分析需求,成为工业物联网等复杂场景的理想选择。未来趋势包括AI原生集成和边缘计算支持,推动时序数据库向智能化、分布式演进。

2026-04-27 16:15:04 8108 7

原创 K8s 之 Ingress 及 Ingress Controller

Ingress 简介与部署指南 本文介绍了 Kubernetes 中的 Ingress 概念及其部署方法。Ingress 是管理集群外部访问的 API 对象,负责 HTTP/HTTPS 路由,与 Service 的内部服务发现形成互补。 核心要点: Ingress 功能:提供外部访问入口、基于域名/路径的路由、SSL/TLS 终止和负载均衡 与 Service 暴露方式的对比:Ingress 工作在应用层(L7),支持域名访问,是最推荐的生产环境方案 Ingress 与 Controller 的关系:Ing

2026-04-27 13:43:22 903 29

原创 时序数据库选型避坑指南:一个大数据老兵的六维实战法则

文章摘要: 时序数据库选型在大数据场景下至关重要,传统数据库难以应对时序数据的高并发写入、海量存储和高效查询需求。本文结合实践经验,分析了主流时序数据库(如InfluxDB、TimescaleDB)的痛点,包括高成本、低扩展性和弱国产化适配。重点推荐国产时序数据库DolphinDB,其在高并发写入(实测1200万+/秒)、查询性能(秒级响应)、存储压缩比(10:1~20:1)及国产化适配方面表现优异,并通过实际案例(金融量化、工业监控)验证了其稳定性和成本优势。DolphinDB的一体化架构(存储+流计算+

2026-04-24 14:31:04 22527 9

原创 k8s之镜像拉取策略

本文介绍了Kubernetes中三种镜像拉取策略及其应用场景:Always(总是远程拉取最新镜像)、IfNotPresent(本地不存在时拉取,默认策略)和Never(仅使用本地镜像)。文章详细说明了各策略的YAML配置示例,并解释了镜像标签对默认策略的影响。针对私有仓库场景,提供了创建Secret和配置imagePullSecrets的完整步骤。最后列举了常见故障现象及解决方法,帮助用户快速排查镜像拉取问题。

2026-04-21 07:00:00 2345 32

原创 Kubernetes 部署 MySQL 一主两从集群(StatefulSet + Job 初始化主从复制)

本文介绍了在Kubernetes中部署MySQL集群的详细配置方法,主要内容包括: 创建两个Service实现读写分离: Headless Service用于内部Pod通信 读Service提供负载均衡的读请求访问 通过ConfigMap配置主从数据库: 主库配置开启二进制日志、行级复制等 从库配置中继日志、只读模式等 使用Secret存储敏感信息: root用户密码 主从复制密码 StatefulSet配置要点: 使用InitContainer动态生成配置文件 基于Pod序号自动分配server-id 区

2026-04-15 08:15:00 2150 36

原创 当数据学会“秒回“:工业4.0时代的实时计算革命

本文探讨了工业4.0时代数字化转型的关键挑战与解决方案。随着工业数据从"连接万物"向"即时决策"演进,传统"存算分离"架构面临处理延迟、数据价值流失等问题。DolphinDB时序数据库提出创新解法:通过存算一体架构消除数据搬运,实现微秒级响应;其流批一体模式统一研发与生产环境,提升开发效率;同时为AI智能体提供实时数据支持。案例显示,该方案能大幅降低硬件需求,提升数据处理时效性,帮助企业将海量工业数据转化为实时决策优势,在数字化转型中赢得竞争力。

2026-04-14 09:08:38 10310 6

原创 麒麟v10桌面版2403版本运行程序提示权限不足(KYSEC)

本文介绍了银河麒麟V10桌面版SP1 2403版本中因安全机制导致的程序权限不足问题。通过分析发现,系统安全中心的应用访问控制开关关闭后仍会拦截程序运行,需手动修改配置彻底关闭。文章提供了三种解决方法:使用setstatus命令临时或永久切换软模式、通过security-switch命令关闭安全机制、修改kysec.conf配置文件禁用总开关或隐私保护。操作后需重启系统生效,并附有恢复默认设置的说明。建议用户操作前备份数据,确保版本兼容性。

2026-04-10 14:39:24 1835 32

原创 实时性即竞争力:物联网数据处理的五次代际跃迁

摘要:物联网实时处理能力的演进与影响 物联网数据处理正经历从离线批处理到智能实时决策的转型过程。这一演进可分为五个阶段:初期以离线存储为主,逐步过渡到微批处理,随后发展为原生流式计算。当前主流趋势是流批一体架构,通过统一计算引擎解决系统割裂问题。未来将向智能实时决策和云边端协同方向发展。这种技术变革使企业价值兑现窗口从事后分析转向事中介入,重塑了运营模式。实时能力差异也深刻影响企业系统架构的长期演进能力,从补丁式叠加转向统一技术底盘。

2026-04-09 11:40:19 12428 14

原创 流批一体架构下的时序数据库选型:Apache IoTDB实时计算能力深度解析与国际化对比

摘要: 工业大数据架构从Lambda演进到流批一体,Apache IoTDB通过TsFile存储格式、分层存储策略和统一查询引擎实现高效融合。TsFile优化流式写入与批量读取,支持同态压缩;热-温-冷分层存储平衡性能与成本;类SQL语法统一流批查询。对比InfluxDB和TimescaleDB,IoTDB在写入吞吐(363万点/秒)、乱序处理及边缘支持上表现更优,为工业物联网提供毫秒级实时响应与历史分析能力。

2026-04-07 11:27:00 13294 11

原创 K8s之StatefulSet控制器

StatefulSet是Kubernetes中用于管理有状态应用的工作负载控制器,为需要稳定身份标识和持久化存储的分布式系统提供支持。与Deployment管理的无状态应用不同,StatefulSet确保Pod具有唯一、有序的序号和固定网络标识,通过volumeClaimTemplates为每个Pod创建独立PVC实现存储与Pod生命周期解耦。StatefulSet还严格保证Pod的有序创建、删除和扩缩容,适用于数据库、消息队列等有状态服务。相比之下,Deployment适用于无状态应用,其Pod随机命名、

2026-04-03 08:00:00 1123 35

原创 工业物联网数据平台建设:5 种主流技术架构对比

本文系统梳理了IoT时序数据处理的五种主流架构模式,针对不同应用场景提供解决方案。模式一采用消息总线+时序数据库的解耦中台架构,适合规模化IoT平台;模式二通过边缘计算实现边云协同,适用于网络不稳定场景;模式三引入流处理引擎满足实时计算需求;模式四结合数据湖实现冷热分层存储;模式五采用一体化引擎简化技术栈。文章详细分析了各模式的适用场景、技术栈及优劣势,为IoT项目架构选型提供参考框架,帮助企业在性能、成本和复杂度之间取得平衡。

2026-03-31 20:19:55 11707 10

原创 新型电力系统的实时数据底座:从“事后记录“到“实时闭环“

摘要: 新型电力系统在“双碳”目标下加速转型,源网荷储各侧角色重构,电力平衡与定价机制向实时化演进。新能源高占比、储能及需求响应等新业态涌现,对数据平台提出实时感知、快速计算与闭环决策的新要求。传统多组件拼装的架构面临数据割裂、实时性不足、规则变更成本高等挑战。新一代数据底座需整合多模存储、流批一体与AI能力,以存算一体、向量化计算等技术实现高频时序数据处理。典型案例中,DolphinDB通过分布式存储与并行计算,将源侧3000万计量点的治理耗时从数小时缩短至分钟级,验证了高性能时序数据库在电力实时化转型中

2026-03-27 11:43:35 15129 12

原创 当开发“手滑“留下SQL注入漏洞,这道最后防线能救命

摘要: 金仓数据库(KingbaseES)V009R002C014版本内置SQL防火墙,通过内核层主动防御SQL注入攻击,提供学习、警告、报错三种智能模式,实现精准拦截(准确率99.99%)与低性能损耗(<6%)。其基于特征值的白名单机制可自动学习合法SQL,支持用户级防护,两步配置即可启用,有效解决传统依赖开发规范的被动防御问题。该技术已广泛应用于党政、能源等高安全需求领域,为数据资产提供前置保护,平衡安全与效率。

2026-03-19 10:02:28 10377 12

原创 【创作者纪念日1825天5年】我的创作纪念日

摘要:本文回顾了博主在CSDN平台五年的创作历程,从最初记录Linux学习笔记到成为拥有13万粉丝的技术博主。文章分享了博主获得的多项平台认证(如博客专家、运维领域优质创作者等)和创作成果(234篇原创文章、266万+访问量),以及通过技术分享帮助他人的心得体会。博主表示未来将继续坚持技术分享,加强理论与实践结合,不断提升自身价值,同时鼓励读者共同进步。(149字)

2026-03-15 20:33:46 3043 14

原创 工业物联网时代时序数据库选型指南:从大数据架构视角深度解析Apache IoTDB

摘要: 时序数据在工业物联网中占比超80%,传统数据库面临写入瓶颈、存储效率低等挑战。本文提出时序数据库选型的六大维度:写入吞吐、查询延迟、压缩效率、数据模型、端边云协同及生态集成,对比分析InfluxDB、TimescaleDB和Prometheus的优缺点。重点介绍国产Apache IoTDB的创新架构,其原生时序存储引擎TsFile通过专用压缩算法实现高效存储,树形数据模型贴合工业场景,支持端边云全栈部署,成为工业物联网的理想选择。

2026-03-09 10:53:38 16046 13

原创 【Prometheus】Alertmanager配置钉钉告警

本文介绍了部署Alertmanager及钉钉告警服务的详细步骤。首先提供了二进制和k8s两种部署Alertmanager的方式。随后详细讲解了钉钉告警服务的配置过程,包括下载prometheus-webhook-dingtalk组件、创建钉钉机器人、配置dingtalk服务等关键环节。文章还包含服务启动测试、Alertmanager对接钉钉告警的配置方法,并给出了完整的配置文件示例。通过本文指导,读者可以快速实现Prometheus监控系统与钉钉告警的集成。

2026-03-07 19:10:54 14957 31

原创 Prometheus 之 Alertmanager配置说明及路由的使用

Prometheus Alertmanager 路由配置摘要 Alertmanager 通过路由规则实现告警分类分发。配置包含全局参数(如邮箱设置)、路由规则(按标签分组和匹配)和接收者定义(邮件/Webhook)。 路由规则:支持按告警等级(critical/warning/development)匹配,发送至不同团队。 接收者配置:定义默认、警告、严重及开发团队的接收方式(邮件/钉钉),支持恢复通知。 抑制规则:屏蔽冗余告警(如 critical 抑制同源 warning)。 通过 match 和 re

2026-03-02 07:15:00 1214 39

原创 k8s部署Prometheus + node_exporter + Grafana + Alertmanager

本文介绍了在Kubernetes集群中部署Prometheus监控系统的详细步骤。主要内容包括:1)创建monitoring命名空间;2)配置Prometheus的ConfigMap、RBAC权限认证;3)通过Deployment部署Prometheus服务;4)配置NodePort类型的Service对外暴露端口。文章提供了完整的yaml配置文件,并标注了各组件版本及端口信息。适用于已搭建K8s集群的环境,帮助用户快速搭建生产可用的监控系统。

2026-02-26 11:40:02 5821 19

原创 K8S部署kube-state-metrics + CAdvisor 并使用 Prometheus 监控 Kubernetes 指标

摘要 本文介绍了使用Prometheus监控Kubernetes集群的方案及架构设计,主要包括容器资源监控(cAdvisor)、宿主机监控(Node Exporter)和集群对象监控(kube-state-metrics)三个层面。通过部署这些组件,Prometheus可以采集K8s集群、节点和Pod的各项指标,并存储到时序数据库(TSDB)中,最终通过Grafana进行可视化展示,结合Alertmanager实现告警功能。 文章详细列出了K8S集群层面和Pod层面的监控指标,并提供了各监控组件的对照表。部

2026-02-24 13:22:56 10173 24

原创 K8S 之 Taints(污点)与 Tolerations(容忍)

Kubernetes污点(Taints)与容忍(Tolerations)机制详解 摘要: 本文深入解析Kubernetes调度系统中的关键概念——污点(Taints)与容忍(Tolerations)。污点是节点的"禁止调度"标签,用于阻止Pod部署到特定节点;容忍则是Pod的"通行证",允许突破节点限制。文章详细介绍了污点的三种效果(NoSchedule/PreferNoSchedule/NoExecute)和两种匹配模式(Equal/Exists),并通过实际案例展

2026-02-12 09:41:43 4305 25

原创 K8S 之 DaemonSet

本文介绍了Kubernetes中的DaemonSet控制器,它确保每个节点运行一个Pod副本。与Deployment相比,DaemonSet适用于节点级守护进程(如日志收集、监控)。文章详细说明了DaemonSet的应用场景、与Master节点污点的兼容性问题,并提供了调度到Master节点的解决方案。通过一个Nginx部署示例,演示了如何编写DaemonSet YAML文件,包括容忍度设置和资源限制,最后验证了部署结果。适用于需要在集群各节点运行相同服务的场景。

2026-02-11 15:10:07 2921 24

docker24.0.5离线安装包 (一键部署 + 一键卸载)

docker24.0.5离线安装包; 里面只有命令 免安装;直接执行install-docker.sh脚本即可安装,中途会提示你是否给普通用户添加docker权限,是否需要配置docker的存储路径;默认会配置开机自启。 安装完成之后会显示操作系统、docker当前的状态及版本、还有是否支持gpu。 默认会启动docker并设置开机自启; 可自动区分ubuntu、centos、麒麟v10(桌面版、操作系统版)、centos stream等等系统根据不同的系统配置文件放入不同的位置,确保多系统可用性! ------------------------------------------ 安装完大概返回意思: 当前Docker安装脚本版本号 创建docker用户 docker权限提供哪个普通用户 操作系统是什么 selinux状态 服务器上有没有nvidia-smi docker存储路径 Docker的版本 docker状态 Docker是否支持GPU:未找到nvidia相关的组件,暂不支持 --------------------- 支持nvidia-docker,nvidia-docker创建时改为:docker run -itd --gpus all --name xx xx:latest 还包含docker一键卸载脚本(uninstall-docker.sh),一键卸载仅支持当前方式安装docker,慎用!!!

2023-12-20

自动获取服务器系统信息脚本:(操作系统、系统内核、系统架构、CPU型号、CPU核数、显卡型号、内存等等)

自动获取服务器的信息都有: 1、服务器为物理机还是虚拟机还是KVM还是云服务器,型号是什么; 2、操作系统 3、系统内核 4、系统架构 5、CPU型号 6、CPU核数 7、显卡型号 8、显卡显存 9、总内存 10、jdk版本 11、mysql 版本 12、redis 版本 13、python 版本 14、GCC 版本 15、CUDA 版本 后续有什么可以继续加。大家也可以留言,需要什么我会找时间加到里面,并免费提供脚本。欢迎大家也来提意见。

2023-08-15

Linux运维日常巡检脚本 - 可自行修改

Linux运维日常巡检脚本 -- 可自行修改,内包含经常要看的大多数内容,如: 巡检时间 √ 主机名 √ 该服务器为宿主机还是虚拟机还是云服务器 √ ip地址 √ cpu使用空间 √ 内存总计 √ 内存可用 √ 内存使用率 √ 磁盘分区 √ cpu核心总数 √ cpu颗数 √ 系统负载 √ 网络流量 √ 存活端口 √ 是否有swap √ swap大小 √ swap使用率 √ swap使用情况 √ 显卡型号 √ 显卡显存 √ 显卡风扇转速 √ 显卡温度 √ 显卡最高支持cuda版本 √ 显卡驱动版本 √ 显卡当前显存 √ 显卡剩余显存 √ 显卡的使用率(循环) √ 显卡的空闲率(循环) √ jdk版本 √ mysql版本 √ redis版本 √ python版本 √ GCC版本 √ CUDA版本 √ 等等,后续还会添加。

2023-10-08

linux启动、关闭、重启jar包shell脚本

内容可根据自己的情况修改,还有jar包名称;脚本中的`JAR`变量可以修改成自己的jar包名称;然后进行启动、重启、停止等操作; ```bash vim jar_start.sh ``` 执行命令为: sh jar_start.sh start #启动jar包 sh jar_start.sh stop #停止jar包 sh jar_start.sh restart #重启jar包 sh jar_start.sh status #查看jar包状态(是否启动)

2023-05-05

nginx1.24.0 二进制安装离线包及依赖包

nginx1.24.0 二进制安装离线包及依赖包,仅在centos7上测试过。 包含安装包为: gcc目录:版本:gcc4.8.5 openssl目录 pcre目录 zlib目录 install.sh脚本 nginx-1.24.0.tar.gz离线包 <br> 使用方法: 解压直接执行install.sh,会自动安装这几个依赖包和安装nginx所需的几个组件,安装完会自动查询并且解压编译安装nginx1.24.0,并启动nginx程序,默认启动是80端口; <br> 如果不需要启动的可以自行修改脚本。

2024-02-21

openssh7.4p1 升级到 openssh9.5p1 所需的离线包

内容包括:gcc openssl-devel pam-devel rpm-build zlib 这些命令包,同时还包括:openssh-9.5p1.tar.gz、openssl-1.1.1t.tar.gz离线包; 各个版本为:gcc-->4.8.5、openssl-->1.1.1、pam-->1.1.8、zlib-->1.2.7 openssh-update ├── boost-serialization-1.53.0-28.el7.x86_64.rpm ├── boost-system-1.53.0-28.el7.x86_64.rpm ├── boost-thread-1.53.0-28.el7.x86_64.rpm ├── cpp-4.8.5-44.el7.x86_64.rpm ├── gcc-4.8.5-44.el7.x86_64.rpm ├── gcc-c++-4.8.5-44.el7.x86_64.rpm ├── gcc-gfortran-4.8.5-44.el7.x86_64.rpm ├── gcc-gnat-4.8.5-44.el7.x86_64.rpm ├── gc

2023-11-30

mysql数据库定时备份脚本+定时删除

mysql数据库定时备份脚本+定时自动删除,默认为删除七天以前的备份,可自行修改(节省空间) 注意看脚本内的注释说明!!!!!!!!!!!!! 定时备份,需要写周期性计划任务: #周期性计划任务(每天完备一次) 0 0 */1 * * root /bin/sh 脚本路径/back.sh 脚本可修改的内容: 1、数据库信息:用户名、密码、ip、端口(必须修改的) 2、mysqldump的环境变量,也就是绝对路径(必须修改的) 3、备份的路径及日志文件名 4、脚本保留的天数 5、要备份的库(注意里面的说明:如需备份多个库,可以用到数组;如只备份一个库,可直接使用命令备份即可;如果要备份全部库,把库名改为:--all-databases即可;在脚本里面都是有说明的;总之,注意里面的说明!!!)(必须修改的) 6、备份库的文件名和打包备份的文件名(这里脚本内也有说明) 7、日志文件内打印的内容 日志文件的内容展示: --- 创建备份文件: 20230510.sql.tgz 开始:2023年05月10日 16:06:15 结束:2023年05月10日 16:06:20 succ

2023-05-12

shell脚本:一键启动当前目录所有jar包、一键停止jar包、一键查看当前目录所有jar包的进程数、一键重启jar包脚本

此shell脚本中包含功能: 一键启动当前目录所有jar包 一键停止当前目录jar包 一键查看当前目录所有jar包的进程数 一键重启当前目录jar包 执行命令为: 查看进程:sh java_check.sh process 启动:sh java_check.sh start 停止:sh java_check.sh stop 重启:sh java_check.sh start

2023-10-19

openssh7.4p1 升级到 openssh9.4p1 所需的离线包

内容包括:gcc openssl-devel pam-devel rpm-build zlib 这些命令包,同时还包括:openssh-9.4p1.tar.gz、openssl-1.1.1t.tar.gz离线包; 各个版本为:gcc-->4.8.5、openssl-->1.1.1、pam-->1.1.8、zlib-->1.2.7 openssh-update ├── boost-serialization-1.53.0-28.el7.x86_64.rpm ├── boost-system-1.53.0-28.el7.x86_64.rpm ├── boost-thread-1.53.0-28.el7.x86_64.rpm ├── cpp-4.8.5-44.el7.x86_64.rpm ├── gcc-4.8.5-44.el7.x86_64.rpm ├── gcc-c++-4.8.5-44.el7.x86_64.rpm ├── gcc-gfortran-4.8.5-44.el7.x86_64.rpm ├── gcc-gnat-4.8.5-44.el7.x86_64.rpm ├── gc

2023-10-08

shell批量检测服务端口脚本nc命令检测ip端口是否存在脚本(在linux中用于检测服务状态的)

各脚本说明(此说明顺序不代表最终执行顺序) failif.sh: 判断所要监控的端口是否存在;存在返回ip 端口:ok,不存在返回ip 端口:fail ip-ports.txt: 此txt文件中写的是你要监控的ip 端口;切记,不能有空行和文字;文本中有示例,可以自行修改。还有ip必须可以ping通目标服务器才可以使用。 logs.txt: 记录脚本执行的结果和执行日期 nc-ports.sh: (主文件)内包含检测ip 端口是否存在,存在返回ip 端口:ok,不存在返回ip 端口:fail并写到同级目录中的日志里;还有检测failif脚本中输出的fail失败,如果有失败,则会返回ip 端口及服务名称,并输出到日志文件里,并发送告警到指定邮箱;最后输出日期-已监测到日志文件中。 services.txt: 此文件中主要写的是端口所对象的服务(所以大家尽量将服务端口统一)切记,不能有空行。

2023-09-18

openssh升级9.3p1所需的离线包

内容包括:gcc openssl-devel pam-devel rpm-build zlib 这些命令包,同时还包括:openssh-9.3p1.tar.gz、openssl-1.1.1t.tar.gz离线包; 各个版本为:gcc-->4.8.5、openssl-->1.1.1、pam-->1.1.8、zlib-->1.2.7 openssh-update ├── boost-serialization-1.53.0-28.el7.x86_64.rpm ├── boost-system-1.53.0-28.el7.x86_64.rpm ├── boost-thread-1.53.0-28.el7.x86_64.rpm ├── cpp-4.8.5-44.el7.x86_64.rpm ├── gcc-4.8.5-44.el7.x86_64.rpm ├── gcc-c++-4.8.5-44.el7.x86_64.rpm ├── gcc-gfortran-4.8.5-44.el7.x86_64.rpm ├── gcc-gnat-4.8.5-44.el7.x86_64.rpm ├── gc

2023-06-28

openssh7.4p1 升级到 openssh9.3p2 所需的离线包

内容包括:gcc openssl-devel pam-devel rpm-build zlib 这些命令包,同时还包括:openssh-9.3p2.tar.gz、openssl-1.1.1t.tar.gz离线包; 各个版本为:gcc-->4.8.5、openssl-->1.1.1、pam-->1.1.8、zlib-->1.2.7 openssh-update ├── boost-serialization-1.53.0-28.el7.x86_64.rpm ├── boost-system-1.53.0-28.el7.x86_64.rpm ├── boost-thread-1.53.0-28.el7.x86_64.rpm ├── cpp-4.8.5-44.el7.x86_64.rpm ├── gcc-4.8.5-44.el7.x86_64.rpm ├── gcc-c++-4.8.5-44.el7.x86_64.rpm ├── gcc-gfortran-4.8.5-44.el7.x86_64.rpm ├── gcc-gnat-4.8.5-44.el7.x86_64.rpm ├── gc

2023-09-13

Postman 9.12.2 安装包 + 中文包.zip

postman安装就是解压完直接双击运行即可; 里面还有一个app压缩包,解压把app目录放到postman的安装地址/版本/resources下; 桌面找到Postman应用程序右键 -> 打开文件所在位置 再进入app-*.*.*/resources 默认安装地址:C:/Users/用户名/AppData/Local/Postman 示例:C:/Users/用户名/AppData/Local/Postman/app-9.12.2/resources 将解压下来的app目录放到:C:/Users/用户名/AppData/Local/Postman/app-9.12.2/resources/下,然后重启postman即可看到变成中文了。 安装中文包教程也可参考github安装地址:https://github.com/hlmd/Postman-cn

2023-08-09

Linux持续监控maillog邮件日志并输出收件人的邮箱号

持续监控maillog日志输出的收件人邮箱号,刚开始使用是没有的,只有当你发送邮件的时候,就会截取到收件人的邮箱信息,例如: 我开启日志,没有任何反应; 我去qq邮箱给本机的邮箱用户发送邮件; 发送出去了,我收到了; 好,我maillog也收到了,并截取了我这边收件人的邮箱地址。 完成!!!

2023-07-20

Linux之批量创建多个用户名及批量删除用户名(内容可根据自己的需求自行修改)

【Linux】之批量创建多个用户名及批量删除用户名(内容可根据自己的需求自行修改),不懂可以直接私信我。 username.zip内容 log、useradd.sh、userdel.sh、usersearch.sh、username.txt - log 就是创建的一个空目录,用于存放执行脚本的日志的,放的时候和脚本放到同级就可以; - useradd.sh 是创建用户组、批量添加用户并设置密码、创建家目录更改用户组,完成之后并统计执行当前脚本共创建了多少个用户。(用户名脚本、用户组、密码可根据自己的所需来自行修改),配合username.txt一起使用。 - userdel.sh 是通过username.txt批量删除用户名及用户组,删除完成之后会提示此次支持脚本共删除了多少个用户,并统计执行脚本前后的用户数量。(配合username.txt一起使用。) - username.txt 这里面是你需要创建的用户名,按照里面的格式来,一行一个用户名。 注意:useradd.sh、userdel.sh、usersearch.sh都需要和username.txt配置使用。

2023-04-13

李峋爱心代码(动态,情人节必备)

李峋爱心代码(动态,情人节必备)

2023-07-10

mysql、mysqldump命令离线包(可直接使用命令)

使用环境:linux(上传到linux中记得chmod 775 * 加执行权限) 包里面的文件:mysql、mysqldump 两个命令 mysqldump使用方法:可直接使用,备份数据库 使用方法:mysqldump --opt -u用户名 -p密码 -hIP地址 -P数据库端口 要备份的库 > 导入指定的sql里 示例:mysqldump --opt -uroot -p123123 -h192.168.2.10 -P3306 abc > /usr/local/data/backup/abc.sql mysql使用方法:可直接使用命令连接 使用方法:mysql -u用户名 -p密码 -hIP地址 -P数据库端口 示例:mysql -uroot -p123123 -h192.168.2.10 -P3306

2023-05-10

kubeadm所需镜像包v1.20.0版本

包含:kube-apiserver-1.20.0.tar、kube-controller-manager-1.20.0.tar、kube-proxy-1.20.0.tar、kube-scheduler-1.20.0.tar、etcd-3.4.13-0.tar、pause-3.2.tar、coredns-1.7.0.tar; 镜像导入: docker load -i kube-apiserver-1.20.0.tar docker load -i kube-controller-manager-1.20.0.tar docker load -i kube-proxy-1.20.0.tar docker load -i kube-scheduler-1.20.0.tar docker load -i etcd-3.4.13-0.tar docker load -i coredns-1.7.0.tar docker load -i pause-3.2.tar

2023-03-23

K8S部署metrics-server-0.6.2镜像文件及yaml文件

内包含: 1、修改镜像源之后的:metrics-server-components.yaml 文件 2、metrics-server-0.6.2 镜像文件 可以直接下载使用 docker load -i metrics-server-0.6.2.tar 进行导入镜像。 相关文章:https://liucy.blog.csdn.net/article/details/129661466

2023-03-22

kubeadm所需镜像包及脚本v1.20.15版本

kubeadm所需镜像包及脚本v1.20.15版本,包含以下内容 kubeadm.sh docker load -i kube-apiserver-1.20.15.tar docker load -i kube-controller-manager-1.20.15.tar docker load -i kube-proxy-1.20.15.tar docker load -i kube-scheduler-1.20.15.tar docker load -i coredns-1.7.0.tar docker load -i etcd-3.4.13-0.tar docker load -i pause-3.2.tar

2023-03-17

docker28.1.1离线安装包 (一键部署 + 一键卸载)

docker28.1.1离线安装包; 里面只有命令 免安装;直接执行install-docker.sh脚本即可安装,中途会提示你是否给普通用户添加docker权限,是否需要配置docker的存储路径;默认会配置开机自启。 安装完成之后会显示操作系统、docker当前的状态及版本、还有是否支持gpu。 默认会启动docker并设置开机自启; 可自动区分ubuntu、centos、麒麟v10(桌面版、操作系统版)、centos stream等等系统根据不同的系统配置文件放入不同的位置,确保多系统可用性! ------------------------------------------ 安装完大概返回意思: 当前Docker安装脚本版本号 创建docker用户 docker权限提供哪个普通用户 操作系统是什么 selinux状态 服务器上有没有nvidia-smi docker存储路径 Docker的版本 docker状态 Docker是否支持GPU:未找到nvidia相关的组件,暂不支持 --------------------- 支持nvidia-docker,nvidia-docker创建时改为:docker run -itd --gpus all --name xx xx:latest 还包含docker一键卸载脚本(uninstall-docker.sh),一键卸载仅支持当前方式安装docker,慎用!!!

2025-12-17

docker20.10.7离线安装包 - ARM架构 (一键部署)

docker20.10.7离线安装包 - ARM架构 ; 里面只有命令 免安装,直接执行install-docker.sh脚本即可安装。 安装完成之后会显示操作系统、docker当前的状态及版本。 默认会启动docker并设置开机自启; ------------------------------------------ 安装完返回: 操作系统为:Kylin V10 Docker的版本为:20.10.7 docker状态为:running

2024-08-15

Windows压力测试工具 - 包含(cpu、内存)压力测试工具

1、CPU压力测试工具 - cpustres 2、内存压力测试工具 - testlimit 3、磁盘压力测试工具 - consume(弃用) 如何使用? 文章:https://liucy.blog.csdn.net/article/details/155017294

2025-11-20

centos8 openssh9.8p1升级openssh10.0p1所需的离线包

离线安装的话,进入解压之后先不要执行install.sh,需要根据系统所缺的来安装(安装过程中缺什么安装什么),避免操作系统不一样安装导致系统崩溃; 如果是centos8新环境可以直接执行install.sh来安装编译所需的依赖包,然后按照文档进行升级openssh即可; 文章连接:https://liucy.blog.csdn.net/article/details/150848861 gcc版本:8.5.0 openssl版本:3.3.1 openssl-devel版本:1.1.1k openssh版本:10.0p1 pam版本:1.3.1-15 make版本:4.2.1-10 zlib-devel版本:1.2.11-17

2025-08-27

centos8默认8.0 升级 openssh9.8p1所需的离线包

离线安装的话,进入解压之后先不要执行install.sh,需要根据系统所缺的来安装(安装过程中缺什么安装什么),避免操作系统不一样安装导致系统崩溃; 如果是centos8新环境可以直接执行install.sh来安装编译所需的依赖包,然后按照文档进行升级openssh即可; 文章连接:https://liucy.blog.csdn.net/article/details/150848861 gcc版本:8.5.0 openssl版本:3.3.1 openssl-devel版本:1.1.1k openssh版本:9.8p1 pam版本:1.3.1-15 make版本:4.2.1-10 zlib-devel版本:1.2.11-17

2025-08-27

arm数据库镜像 - 8.1.0版本

arm数据库镜像 - 8.1.0版本 创建容器命令: docker run -itd --name mysql --restart=always -p 3306:3306 -v /var/lib/mysql/my.cnf:/etc/mysql/my.cnf -v /var/lib/mysql/data:/var/lib/mysql/data/ -v /etc/localtime/:/etc/localtime/ -e MYSQL_ROOT_PASSWORD=123123 mysql:latest -v ”:“前面的可以改为自己的路径,”:“后面的路径为固定路径。

2025-02-26

批量获取当前目录中文件的md5值【windows、linux】

批量获取当前目录中文件的md5值, 内包含windows的bat脚本 和 linux的shell脚本。

2025-02-26

Nginx 404页面美化

Nginx 404页面美化,里面包含11种页面美化供您参考,内容可修改。

2024-12-13

Visual C++ 2013 Redistributable

Visual C++ 2013 Redistributable 里面有x86和x64位的,根据自己所需下载。 windows安装mysql5.7的时候会用到。

2024-09-30

k8s网络插件 flannel v0.25.5 flannel-cni-plugin-v1.5.1-flannel1 镜像包

flannel v0.25.5 flannel-cni-plugin-v1.5.1-flannel1 镜像包

2024-08-27

podman 离线安装包

podman用于centos Stream 8-10镜像版本,目前只发现了这几个系统可以使用此服务代替docker服务; podman 离线安装包,可以代替docker创建容器镜像等等,参数和docker都一样; podman5.1.1版本,里面有install.sh脚本,可以直接执行安装;

2024-07-08

ELFK docker镜像-7.1.0版本(elasticsearch、filebeat)

ELFK docker镜像-7.1.0版本(elasticsearch、filebeat) 剩余两个镜像文件在: https://download.csdn.net/download/liu_chen_yang/89427504 ELFK docker镜像-7.1.0版本(kibana、logstash) 可能里面打了好几层压缩包,记得解压一下到*.tar结尾就行,因为上传有限制;

2024-06-13

ELFK docker镜像-8.12.2版本(elasticsearch、filebeat)

ELFK docker镜像-8.12.2版本(elasticsearch、filebeat) 剩余两个镜像文件在: https://download.csdn.net/download/liu_chen_yang/89427463 ELFK docker镜像-8.12.2版本(kibana、logstash) 可能里面打了好几层压缩包,记得解压一下到*.tar结尾就行,因为上传有限制;

2024-06-13

ELFK docker镜像-8.12.2版本(kibana、logstash)

ELFK docker镜像-8.12.2版本(kibana、logstash) 剩余两个镜像文件在: https://download.csdn.net/download/liu_chen_yang/89427462 ELFK docker镜像-8.12.2版本(elasticsearch、filebeat) 可能里面打了好几层压缩包,记得解压一下到*.tar结尾就行,因为上传有限制;

2024-06-13

ELFK docker镜像-7.1.0版本(kibana、logstash)

ELFK docker镜像-7.1.0版本(kibana、logstash) 剩余两个镜像文件在: https://download.csdn.net/download/liu_chen_yang/89427498 ELFK docker镜像-7.1.0版本(elasticsearch、filebeat) 可能里面打了好几层压缩包,记得解压一下到*.tar结尾就行,因为上传有限制;

2024-06-13

docker-compose1.29.2离线包

docker-compose1.29.2离线包 安装方式: 1、解压 2、传到服务器上 3、给docker-compose权限:chmod 775 docker-compose 4、移动到/usr/bin/下:mv docker-compose /usr/bin/ 5、查看版本号:docker-compose --version docker-compose version 1.29.2, build 5becea4c 完成!

2024-06-13

centos系统zip、unzip离线rpm安装包

centos系统zip、unzip离线rpm安装包 zip版本:3.0.1 unzip版本:6.0.5 架构:适用于x86架构

2024-04-23

服务器安全:获取登录的用户名、时间和操作信息并记录到指定路径日志里脚本

服务器安全:获取登录的用户名、时间和操作信息并记录到指定路径日志里脚本 以用户名分类创建目录,文件名为:ip_loginlog.日期(172.16.11.22_loginlog.2023-02-01_11:00:02) 内记录该用户操作的所有内容。

2024-04-25

服务器安全:登录服务器获取连接用户的信息并发送邮件到指定邮箱脚本

服务器安全:登录服务器获取连接用户的信息并发送邮件到指定邮箱脚本 获取连接用户的:IP 获取当前时间(精确到秒) 发送邮件内容为: IP为:172.16.10.1 用户在 2024年04月25日 15点56分03秒 登录了 172.16.10.2 服务器,特此通知!!!

2024-04-25

openssh7.4p1 升级到 openssh9.6p1 所需的离线包

内容包括:gcc openssl-devel pam-devel rpm-build zlib 这些命令包,同时还包括:openssh-9.6p1.tar.gz、openssl-1.1.1t.tar.gz离线包; 各个版本为:gcc-->4.8.5、openssl-->1.1.1、pam-->1.1.8、zlib-->1.2.7 openssh-update ├── boost-serialization-1.53.0-28.el7.x86_64.rpm ├── boost-system-1.53.0-28.el7.x86_64.rpm ├── boost-thread-1.53.0-28.el7.x86_64.rpm ├── cpp-4.8.5-44.el7.x86_64.rpm ├── gcc-4.8.5-44.el7.x86_64.rpm ├── gcc-c++-4.8.5-44.el7.x86_64.rpm ├── gcc-gfortran-4.8.5-44.el7.x86_64.rpm ├── gcc-gnat-4.8.5-44.el7.x86_64.rpm ├── gc

2024-02-27

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

TA关注的人

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